<html>
<head><meta charset="utf-8"><title>Issue #83737 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html">Issue #83737</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="233169310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169310">(Apr 05 2021 at 13:07)</a>:</h4>
<p>So, let me start by describing the issue</p>



<a name="233169346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169346">(Apr 05 2021 at 13:07)</a>:</h4>
<p>Which, as it turns out, is <em>two</em> issues</p>



<a name="233169374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169374">(Apr 05 2021 at 13:07)</a>:</h4>
<p>Let's start with</p>
<div class="codehilite"><pre><span></span><code>use core::future::Future;

async fn handle&lt;F&gt;(slf: &amp;F)
where
    F: Fn(&amp;()) -&gt; &amp;mut (dyn Future&lt;Output = ()&gt; + Unpin),
{
    (slf)(&amp;()).await;
}
</code></pre></div>



<a name="233169502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169502">(Apr 05 2021 at 13:08)</a>:</h4>
<p>Because of <code>(slf)(&amp;())</code>, we want to store <code>&amp;mut (dyn Future&lt;Output = ()&gt; + Unpin)</code> in the <code>GeneratorWitness</code></p>



<a name="233169701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169701">(Apr 05 2021 at 13:10)</a>:</h4>
<p>Now, first bug I uncovered (that <a href="https://github.com/rust-lang/rust/issues/83870">#83870</a> addresses), is that accidently was having the bound vars from <code>Fn</code> concatenate onto <code>Future</code></p>



<a name="233169764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169764">(Apr 05 2021 at 13:10)</a>:</h4>
<p>Since, I didn't add a way to "stop" concatenation across types</p>



<a name="233169801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169801">(Apr 05 2021 at 13:11)</a>:</h4>
<p>(We can go into specifics of this bit shortly; I want to finish going through the other issue)</p>



<a name="233169928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233169928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233169928">(Apr 05 2021 at 13:12)</a>:</h4>
<p>So, what we end up with in terms of what we think the bound vars are is:</p>
<div class="codehilite"><pre><span></span><code>F: for&lt;&#39;a&gt; Fn(&amp;()) -&gt; &amp;mut (dyn for&lt;&#39;a&gt; Future&lt;Output = ()&gt; + Unpin)
</code></pre></div>



<a name="233170009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170009">(Apr 05 2021 at 13:13)</a>:</h4>
<p>This alone really isn't the end of the world: if <code>'a</code> was used in the associated type bound, then we could maybe run into issues, but it's not here</p>



<a name="233170022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170022">(Apr 05 2021 at 13:13)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233169701">said</a>:</p>
<blockquote>
<p>Now, first bug I uncovered (that <a href="https://github.com/rust-lang/rust/issues/83870">#83870</a> addresses), is that accidently was having the bound vars from <code>Fn</code> concatenate onto <code>Future</code></p>
</blockquote>
<p>"who" was</p>



<a name="233170025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170025">(Apr 05 2021 at 13:13)</a>:</h4>
<p>But it is an issue</p>



<a name="233170047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170047">(Apr 05 2021 at 13:13)</a>:</h4>
<p><em>I</em></p>



<a name="233170070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170070">(Apr 05 2021 at 13:13)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233169928">said</a>:</p>
<blockquote>
<p>So, what we end up with in terms of what we think the bound vars are is:</p>
<p><div class="codehilite"><pre><span></span><code>F: for&lt;&#39;a&gt; Fn(&amp;()) -&gt; &amp;mut (dyn for&lt;&#39;a&gt; Future&lt;Output = ()&gt; + Unpin)
</code></pre></div><br>
</p>
</blockquote>
<div class="codehilite"><pre><span></span><code>F: for&lt;&#39;a&gt; Fn(&amp;&#39;a ()) -&gt; &amp;&#39;a mut (dyn for&lt;&#39;a&gt; Future&lt;Output = ()&gt; + Unpin)
</code></pre></div>
<p>right?</p>



<a name="233170142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170142">(Apr 05 2021 at 13:14)</a>:</h4>
<p>mmm, yes</p>



<a name="233170199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170199">(Apr 05 2021 at 13:15)</a>:</h4>
<p>I kind of messed up and used the <code>&amp;mut</code> repro instead of the <code>Box</code> repro; it makes no difference in terms of the problem or solution, just makes it a <em>bit</em> harder to reason about because of the extra lifetime</p>



<a name="233170250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170250">(Apr 05 2021 at 13:15)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233169801">said</a>:</p>
<blockquote>
<p>(We can go into specifics of this bit shortly; I want to finish going through the other issue)</p>
</blockquote>
<p>so what is the other issue?</p>



<a name="233170257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170257">(Apr 05 2021 at 13:15)</a>:</h4>
<p>Yes so</p>



<a name="233170302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170302">(Apr 05 2021 at 13:16)</a>:</h4>
<p>Turns out, this next issue is a bit of a doozy</p>



<a name="233170334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170334">(Apr 05 2021 at 13:16)</a>:</h4>
<p>and revolves around region anonymization and erasure</p>



<a name="233170374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170374">(Apr 05 2021 at 13:16)</a>:</h4>
<p>Basically, in the <code>GeneratorWitness</code>, we erase regions</p>



<a name="233170422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170422">(Apr 05 2021 at 13:17)</a>:</h4>
<p>And as part of this, we can <code>anonymize_late_bound_regions</code></p>



<a name="233170446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170446">(Apr 05 2021 at 13:17)</a>:</h4>
<p>(recursively)</p>



<a name="233170490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170490">(Apr 05 2021 at 13:17)</a>:</h4>
<p>Which currently remakes the bound vars based on the (now anon) bound regions found</p>



<a name="233170495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170495">(Apr 05 2021 at 13:17)</a>:</h4>
<p>/me gets link</p>



<a name="233170558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170558">(Apr 05 2021 at 13:18)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/fold.rs#L734">https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/fold.rs#L734</a></p>



<a name="233170576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170576">(Apr 05 2021 at 13:18)</a>:</h4>
<p>I'm familiar yes</p>



<a name="233170623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170623">(Apr 05 2021 at 13:19)</a>:</h4>
<p>So, given </p>
<div class="codehilite"><pre><span></span><code>for&lt;&#39;a&gt; Fn(&amp;()) -&gt; &amp;&#39;a mut (dyn for&lt;&#39;a&gt; Future&lt;Output = ()&gt; + Unpin)
</code></pre></div>
<p>, that gets turned into </p>
<div class="codehilite"><pre><span></span><code>for&lt;&#39;a&gt; Fn(&amp;()) -&gt; &amp;&#39;a mut (dyn Future&lt;Output = ()&gt; + Unpin)
</code></pre></div>



<a name="233170665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170665">(Apr 05 2021 at 13:19)</a>:</h4>
<p>Because <code>'a</code> is unused in the <code>Future</code> trait ref</p>



<a name="233170745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170745">(Apr 05 2021 at 13:20)</a>:</h4>
<p>question</p>



<a name="233170769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170769">(Apr 05 2021 at 13:20)</a>:</h4>
<p>However, when we look at the "local declarations" for the generator, we still see the type <em>with</em> that <code>Binder</code></p>



<a name="233170778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170778">(Apr 05 2021 at 13:20)</a>:</h4>
<p>Pausing</p>



<a name="233170781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170781">(Apr 05 2021 at 13:20)</a>:</h4>
<p>we are anonymizing the <em>types</em> of the local variables, right?</p>



<a name="233170789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170789">(Apr 05 2021 at 13:20)</a>:</h4>
<p>but that's a where clause?</p>



<a name="233170835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170835">(Apr 05 2021 at 13:21)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233170769">said</a>:</p>
<blockquote>
<p>However, when we look at the "local declarations" for the generator, we still see the type <em>with</em> that <code>Binder</code></p>
</blockquote>
<p>this is in the assertion?</p>



<a name="233170975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170975">(Apr 05 2021 at 13:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233170781">said</a>:</p>
<blockquote>
<p>we are anonymizing the <em>types</em> of the local variables, right?</p>
</blockquote>
<p>Yes. Sorry, slightly typo. We anonymize <code>F</code> which has a type of <code>for&lt;'a&gt; Fn(&amp;()) -&gt; &amp;'a mut (dyn for&lt;'a&gt; Future&lt;Output = ()&gt; + Unpin)</code></p>



<a name="233170998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233170998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233170998">(Apr 05 2021 at 13:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233170835">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233170769">said</a>:</p>
<blockquote>
<p>However, when we look at the "local declarations" for the generator, we still see the type <em>with</em> that <code>Binder</code></p>
</blockquote>
<p>this is in the assertion?</p>
</blockquote>
<p>Yes</p>



<a name="233171004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171004">(Apr 05 2021 at 13:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233170975">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233170781">said</a>:</p>
<blockquote>
<p>we are anonymizing the <em>types</em> of the local variables, right?</p>
</blockquote>
<p>Yes. Sorry, slightly typo. We anonymize <code>F</code> which has a type of <code>for&lt;'a&gt; Fn(&amp;()) -&gt; &amp;'a mut (dyn for&lt;'a&gt; Future&lt;Output = ()&gt; + Unpin)</code></p>
</blockquote>
<p>this is still not a type :)</p>



<a name="233171007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171007">(Apr 05 2021 at 13:23)</a>:</h4>
<p>I'm confused</p>



<a name="233171047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171047">(Apr 05 2021 at 13:23)</a>:</h4>
<p>One second</p>



<a name="233171207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171207">(Apr 05 2021 at 13:24)</a>:</h4>
<p>So, the <code>decl_ty</code> that we see and assert on <em>is</em> <code>for&lt;'a&gt; Fn(&amp;()) -&gt; &amp;'a mut (dyn for&lt;'a&gt; Future&lt;Output = ()&gt; + Unpin)</code></p>



<a name="233171251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171251">(Apr 05 2021 at 13:25)</a>:</h4>
<p>Which is a type? It's an <code>Adt</code>?</p>



<a name="233171373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171373">(Apr 05 2021 at 13:26)</a>:</h4>
<p><code>Fn</code> is a trait</p>



<a name="233171380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171380">(Apr 05 2021 at 13:26)</a>:</h4>
<p>maybe you mean <code>fn</code> ?</p>



<a name="233171398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171398">(Apr 05 2021 at 13:26)</a>:</h4>
<p>or <code>dyn Fn</code> ?</p>



<a name="233171400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171400">(Apr 05 2021 at 13:26)</a>:</h4>
<p><span aria-label="speechless" class="emoji emoji-1f636" role="img" title="speechless">:speechless:</span></p>



<a name="233171416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171416">(Apr 05 2021 at 13:26)</a>:</h4>
<p>You're right</p>



<a name="233171425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171425">(Apr 05 2021 at 13:26)</a>:</h4>
<p>(neither of which is an adt, of course...)</p>



<a name="233171426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171426">(Apr 05 2021 at 13:26)</a>:</h4>
<p><code>&amp;'a mut (dyn for&lt;'a&gt; Future&lt;Output = ()&gt; + Unpin)</code></p>



<a name="233171443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171443">(Apr 05 2021 at 13:27)</a>:</h4>
<p>ok, that makes more sense</p>



<a name="233171454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171454">(Apr 05 2021 at 13:27)</a>:</h4>
<p>Or, better <code>Box&lt;dyn for&lt;'a&gt; Future&lt;Output = ()&gt; + Unpin&gt;</code></p>



<a name="233171476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171476">(Apr 05 2021 at 13:27)</a>:</h4>
<p>Sorry, didn't get a lot of sleep :)</p>



<a name="233171493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171493">(Apr 05 2021 at 13:27)</a>:</h4>
<p>ok so the bug has to do w/ having the non-anomyized version</p>



<a name="233171502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171502">(Apr 05 2021 at 13:27)</a>:</h4>
<p>in the generator</p>



<a name="233171512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171512">(Apr 05 2021 at 13:28)</a>:</h4>
<p>or some mismatch of this kind?</p>



<a name="233171552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171552">(Apr 05 2021 at 13:28)</a>:</h4>
<p>where is that assertion again?</p>



<a name="233171557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171557">(Apr 05 2021 at 13:28)</a>:</h4>
<p>mismatch</p>



<a name="233171586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171586">(Apr 05 2021 at 13:28)</a>:</h4>
<p>The <code>GeneratorWitness</code> is "fully anonymized"</p>



<a name="233171614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171614">(Apr 05 2021 at 13:28)</a>:</h4>
<p>and <em>doesn't</em> have the binders</p>



<a name="233171621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171621">(Apr 05 2021 at 13:28)</a>:</h4>
<p>(well, has empty binders)</p>



<a name="233171629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171629">(Apr 05 2021 at 13:28)</a>:</h4>
<p>But the declaration <em>does</em></p>



<a name="233171670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171670">(Apr 05 2021 at 13:29)</a>:</h4>
<p>And I haven't <em>quite</em> completely the route to where we see <code>decl_ty</code></p>



<a name="233171691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171691">(Apr 05 2021 at 13:29)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/binder.20refactor/near/233171629">said</a>:</p>
<blockquote>
<p>But the declaration <em>does</em></p>
</blockquote>
<p>where is the "declaration"</p>



<a name="233171706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171706">(Apr 05 2021 at 13:29)</a>:</h4>
<p>and where is the ICE occurring?</p>



<a name="233171708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171708">(Apr 05 2021 at 13:29)</a>:</h4>
<p>But I think it's because we do <code>erase_late_bound_regions</code> first <em>then</em> <code>erase_regions</code></p>



<a name="233171776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171776">(Apr 05 2021 at 13:30)</a>:</h4>
<p>side note: can we break this out into its own topic? with the issue(s) in the title?</p>



<a name="233171820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171820">(Apr 05 2021 at 13:30)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/58e71896506edb701f276158bd2f47e8788a1133/compiler/rustc_mir/src/transform/generator.rs#L750">https://github.com/rust-lang/rust/blob/58e71896506edb701f276158bd2f47e8788a1133/compiler/rustc_mir/src/transform/generator.rs#L750</a></p>



<a name="233171834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171834">(Apr 05 2021 at 13:30)</a>:</h4>
<p>Yes, let me do that</p>



<a name="233171911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171911">(Apr 05 2021 at 13:31)</a>:</h4>
<p>Okay, so I didn't include my ramblings earlier in the thread</p>



<a name="233171916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233171916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233171916">(Apr 05 2021 at 13:31)</a>:</h4>
<p>But that's fine</p>



<a name="233172054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172054">(Apr 05 2021 at 13:33)</a>:</h4>
<p>we have a repro etc now, right?</p>



<a name="233172112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172112">(Apr 05 2021 at 13:33)</a>:</h4>
<p>I'm wondering what the value of <code>allowed</code> and <code>decl_ty</code> is <a href="https://github.com/rust-lang/rust/blob/58e71896506edb701f276158bd2f47e8788a1133/compiler/rustc_mir/src/transform/generator.rs#L750">here</a>?</p>



<a name="233172119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172119">(Apr 05 2021 at 13:33)</a>:</h4>
<p>I feel like you've pasted it in various places...</p>



<a name="233172149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172149">(Apr 05 2021 at 13:33)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233171708">said</a>:</p>
<blockquote>
<p>But I think it's because we do <code>erase_late_bound_regions</code> first <em>then</em> <code>erase_regions</code></p>
</blockquote>
<p>To expand on this: <code>erase_late_bound_regions</code> doesn't regenerate the binders, only changes <code>ReLateBound</code> to <code>ReErased</code>. So then when we go and <code>erase_regions</code>, the binders don't get regenerated becauase we don't recurse into that type. <em>speculation</em></p>



<a name="233172160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172160">(Apr 05 2021 at 13:33)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233172054">said</a>:</p>
<blockquote>
<p>we have a repro etc now, right?</p>
</blockquote>
<p>yes</p>



<a name="233172241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172241">(Apr 05 2021 at 13:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233172112">said</a>:</p>
<blockquote>
<p>I'm wondering what the value of <code>allowed</code> and <code>decl_ty</code> is <a href="https://github.com/rust-lang/rust/blob/58e71896506edb701f276158bd2f47e8788a1133/compiler/rustc_mir/src/transform/generator.rs#L750">here</a>?</p>
</blockquote>
<p>one second</p>



<a name="233172399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172399">(Apr 05 2021 at 13:35)</a>:</h4>
<p>Okay, I don't have a full <code>allowed</code> list anymore for this repro</p>



<a name="233172493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172493">(Apr 05 2021 at 13:36)</a>:</h4>
<p>wait yes I do</p>



<a name="233172511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172511">(Apr 05 2021 at 13:36)</a>:</h4>
<div class="codehilite"><pre><span></span><code>types in generator {
    GeneratorInteriorTypeCause { ty: std::future::ResumeTy, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:10:1: 12:2 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:10:1: 12:2 (#9)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: None },
    GeneratorInteriorTypeCause { ty: &amp;&#39;_#0r F, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:7:20: 7:23 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:10:1: 12:2 (#9)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: None },
    GeneratorInteriorTypeCause { ty: &amp;&#39;_#1r F, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:10 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:22 (#0)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 11 }) },
    GeneratorInteriorTypeCause { ty: &amp;&#39;_#0r F, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:10 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:22 (#0)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 11 }) },
    GeneratorInteriorTypeCause { ty: (), span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:12: 11:14 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:22 (#0)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 12 }) },
    GeneratorInteriorTypeCause { ty: &amp;&#39;_#2r (), span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:11: 11:14 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:22 (#0)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 13 }) },
    GeneratorInteriorTypeCause { ty: &amp;&#39;_#3r (), span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:11: 11:14 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:22 (#0)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 13 }) },
    GeneratorInteriorTypeCause { ty: std::boxed::Box&lt;(dyn for&lt;&#39;r&gt; std::future::Future&lt;for&lt;&#39;s&gt; Output = ()&gt; + std::marker::Unpin + ReStatic)&gt;, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:15 (#0), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:22 (#0)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 14 }) },
    GeneratorInteriorTypeCause { ty: std::boxed::Box&lt;(dyn for&lt;&#39;r&gt; std::future::Future&lt;for&lt;&#39;s&gt; Output = ()&gt; + std::marker::Unpin + &#39;_#6r)&gt;, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: None },
    GeneratorInteriorTypeCause { ty: (), span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 40 }) },
    GeneratorInteriorTypeCause { ty: std::future::ResumeTy, span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), scope_span: Some(/home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7)), yield_span: /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:11:5: 11:21 (#7), expr: Some(HirId { owner: DefId(0:6 ~ issue_83737[8787]::handle), local_id: 41 }) }
}, span = /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:10:1: 12:2 (#9)
</code></pre></div>



<a name="233172541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172541">(Apr 05 2021 at 13:36)</a>:</h4>
<p>err no</p>



<a name="233172552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172552">(Apr 05 2021 at 13:36)</a>:</h4>
<p>that's earlier</p>



<a name="233172577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172577">(Apr 05 2021 at 13:36)</a>:</h4>
<p>But it's <em>roughly</em> </p>
<div class="codehilite"><pre><span></span><code>types in generator after region replacement
for&lt;&#39;r, &#39;s, &#39;t0&gt; {
    std::future::ResumeTy,
    &amp;ReLateBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(&#39;r) }) F,
    (),
    &amp;ReLateBound(DebruijnIndex(0), BoundRegion { var: 1, kind: BrNamed(&#39;s) }) (),
    std::boxed::Box&lt;(dyn std::future::Future&lt;Output = ()&gt; + std::marker::Unpin + ReLateBound(DebruijnIndex(0), BoundRegion { var: 2, kind: BrNamed(&#39;t0) }))&gt;
}, span = /home/hueyj/temp/rust/rust/src/test/ui/const-generics/issues/issue-83737.rs:10:1: 12:2 (#9)
</code></pre></div>



<a name="233172585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172585">(Apr 05 2021 at 13:37)</a>:</h4>
<p>Except with <code>ReErased</code></p>



<a name="233172765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172765">(Apr 05 2021 at 13:38)</a>:</h4>
<p>The important bits are:</p>
<div class="codehilite"><pre><span></span><code>decl_ty.kind() = Adt(
    std::boxed::Box,
    [
        (dyn std::future::Future&lt;Output = ()&gt; + std::marker::Unpin + ReErased),
        std::alloc::Global,
    ],
)
</code></pre></div>
<p>and</p>
<div class="codehilite"><pre><span></span><code>a.kind() = Adt(
    std::boxed::Box,
    [
        (dyn std::future::Future&lt;Output = ()&gt; + std::marker::Unpin + ReErased),
        std::alloc::Global,
    ],
)
</code></pre></div>



<a name="233172777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172777">(Apr 05 2021 at 13:39)</a>:</h4>
<p>Where <code>a</code> is the relevant witness list item</p>



<a name="233172854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233172854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233172854">(Apr 05 2021 at 13:40)</a>:</h4>
<p>Okay, so let me know when you're ready to go through the solution for issue 1</p>



<a name="233173823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233173823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233173823">(Apr 05 2021 at 13:48)</a>:</h4>
<p>Btw I have a hard time limit at 10:00</p>



<a name="233173853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233173853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233173853">(Apr 05 2021 at 13:48)</a>:</h4>
<p>But can chat again later today a bit if needed</p>



<a name="233178822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233178822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233178822">(Apr 05 2021 at 14:30)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> sorry-- I got distracted dealing with something here</p>



<a name="233179958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233179958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233179958">(Apr 05 2021 at 14:39)</a>:</h4>
<p>No problem. My meeting ended early if you have time to chat now?</p>



<a name="233179970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233179970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233179970">(Apr 05 2021 at 14:39)</a>:</h4>
<p>I have 20 minutes</p>



<a name="233189578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233189578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233189578">(Apr 05 2021 at 15:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233172493">said</a>:</p>
<blockquote>
<p>wait yes I do</p>
</blockquote>
<p>yes, I really do:</p>
<div class="codehilite"><pre><span></span><code>{
ResumeTy,
&amp;ReErased F,
(),
&amp;ReErased (),
Box&lt;(dyn Future&lt;Output = ()&gt; + Unpin + ReErased)&gt;
}
</code></pre></div>



<a name="233488367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233488367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233488367">(Apr 07 2021 at 13:37)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="233488381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233488381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233488381">(Apr 07 2021 at 13:37)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="232957">@Jack Huey</span> can't be around though</p>



<a name="233488384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233488384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233488384">(Apr 07 2021 at 13:37)</a>:</h4>
<p>let me dig a bit</p>



<a name="233495431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233495431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233495431">(Apr 07 2021 at 14:17)</a>:</h4>
<p>Around-ish now <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="233495485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233495485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233495485">(Apr 07 2021 at 14:18)</a>:</h4>
<p>not sure if you're still around</p>



<a name="233648290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648290">(Apr 08 2021 at 13:04)</a>:</h4>
<p>I'm here</p>



<a name="233648306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648306">(Apr 08 2021 at 13:04)</a>:</h4>
<p>I made a build of this yesterday</p>



<a name="233648313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648313">(Apr 08 2021 at 13:04)</a>:</h4>
<p>but that' as far as I got</p>



<a name="233648332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648332">(Apr 08 2021 at 13:04)</a>:</h4>
<p>Ah, was about to ask</p>



<a name="233648717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648717">(Apr 08 2021 at 13:07)</a>:</h4>
<p>So, we discussed on Monday a bit about what the problem is, right?</p>



<a name="233648742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648742">(Apr 08 2021 at 13:07)</a>:</h4>
<p>yes</p>



<a name="233648778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648778">(Apr 08 2021 at 13:07)</a>:</h4>
<p>But didn't end up going into details</p>



<a name="233648781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648781">(Apr 08 2021 at 13:07)</a>:</h4>
<p>of the solution</p>



<a name="233648877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648877">(Apr 08 2021 at 13:08)</a>:</h4>
<p>well, we actually didn't get to the whole issue</p>



<a name="233648900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648900">(Apr 08 2021 at 13:08)</a>:</h4>
<p>(well, the second issue)</p>



<a name="233648934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648934">(Apr 08 2021 at 13:08)</a>:</h4>
<p>yeah that was what I wanted to know</p>



<a name="233648957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233648957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233648957">(Apr 08 2021 at 13:08)</a>:</h4>
<p>But that's more simple</p>



<a name="233649019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649019">(Apr 08 2021 at 13:08)</a>:</h4>
<p>Imagine <code>T: Fn() -&gt; Box&lt;dyn Future&lt;Output = ()&gt;&gt;</code></p>



<a name="233649053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649053">(Apr 08 2021 at 13:09)</a>:</h4>
<p>And we want to figure out the bound vars on <code>Future</code></p>



<a name="233649085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649085">(Apr 08 2021 at 13:09)</a>:</h4>
<p>before we go there</p>



<a name="233649092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649092">(Apr 08 2021 at 13:09)</a>:</h4>
<p>what's the test case so I can run it on my own?</p>



<a name="233649212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649212">(Apr 08 2021 at 13:10)</a>:</h4>
<p><code>src/test/ui/lifetimes/issue-83737-binders-across-types.rs</code></p>



<a name="233649257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649257">(Apr 08 2021 at 13:10)</a>:</h4>
<p>thanks</p>



<a name="233649361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649361">(Apr 08 2021 at 13:11)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233649053">said</a>:</p>
<blockquote>
<p>And we want to figure out the bound vars on <code>Future</code></p>
</blockquote>
<p>Currently, it's only determined by looking through the <code>Binder</code> scopes above and the <code>from_poly_trait_ref</code> flag</p>



<a name="233649393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649393">(Apr 08 2021 at 13:11)</a>:</h4>
<p>I don't have that test</p>



<a name="233649406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649406">(Apr 08 2021 at 13:11)</a>:</h4>
<p>It's not on master</p>



<a name="233649408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649408">(Apr 08 2021 at 13:11)</a>:</h4>
<p>maybe I don't have your branch</p>



<a name="233649416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649416">(Apr 08 2021 at 13:11)</a>:</h4>
<p>yeah, I thoght I had your branch, but I think I don't</p>



<a name="233649422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649422">(Apr 08 2021 at 13:11)</a>:</h4>
<p>I'll pull it from your branch</p>



<a name="233649436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649436">(Apr 08 2021 at 13:11)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/1a14315975224951bc993455783678154afade09/src/test/ui/lifetimes/issue-83737-binders-across-types.rs">https://github.com/rust-lang/rust/blob/1a14315975224951bc993455783678154afade09/src/test/ui/lifetimes/issue-83737-binders-across-types.rs</a></p>



<a name="233649706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649706">(Apr 08 2021 at 13:13)</a>:</h4>
<p>so when I run this on master</p>



<a name="233649713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649713">(Apr 08 2021 at 13:13)</a>:</h4>
<p>I don't get any error or anything</p>



<a name="233649717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649717">(Apr 08 2021 at 13:13)</a>:</h4>
<p>am I supposed to?</p>



<a name="233649765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649765">(Apr 08 2021 at 13:14)</a>:</h4>
<div class="codehilite"><pre><span></span><code>athena. rustc +rust-3-stage1 --edition 2018 issue-83737-binders-across-types.rs
warning: function is never used: `handle`
 --&gt; issue-83737-binders-across-types.rs:7:10
  |
7 | async fn handle&lt;F&gt;(slf: &amp;F)
  |          ^^^^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: 1 warning emitted
</code></pre></div>



<a name="233649766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649766">(Apr 08 2021 at 13:14)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233649361">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233649053">said</a>:</p>
<blockquote>
<p>And we want to figure out the bound vars on <code>Future</code></p>
</blockquote>
<p>Currently, it's only determined by looking through the <code>Binder</code> scopes above and the <code>from_poly_trait_ref</code> flag</p>
</blockquote>
<p>The though was if you had <code>fn foo&lt;T&gt;() where T: Foo&lt;Bar: Baz&gt; {}</code> the <code>foo</code> Binder scope has as <code>from_poly_trait_ref</code> flag as <code>false</code> and <code>T: Foo</code> has it set to <code>true</code>. When we try to get bound vars for <code>Bar: Baz</code>, we care about <code>T: Foo</code> bound vars but not <code>foo</code> bound vars</p>



<a name="233649815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649815">(Apr 08 2021 at 13:14)</a>:</h4>
<p>are you building it as a lib?</p>



<a name="233649835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649835">(Apr 08 2021 at 13:14)</a>:</h4>
<p>oh, right</p>



<a name="233649854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233649854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233649854">(Apr 08 2021 at 13:14)</a>:</h4>
<p>got it, thanks!</p>



<a name="233650044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650044">(Apr 08 2021 at 13:16)</a>:</h4>
<p>Anyways, you won't see this output on master because the pretty printing doesn't display the bound vars, only the vars <em>in</em> the type</p>



<a name="233650115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650115">(Apr 08 2021 at 13:16)</a>:</h4>
<p>(which is the change I made to the pretty printing code under <code>-Z verbose</code>)</p>



<a name="233650123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650123">(Apr 08 2021 at 13:16)</a>:</h4>
<p>ok</p>



<a name="233650139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650139">(Apr 08 2021 at 13:16)</a>:</h4>
<p>That was fun to find</p>



<a name="233650216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650216">(Apr 08 2021 at 13:17)</a>:</h4>
<p><code>from_poly_trait_ref</code> flag...where is this</p>



<a name="233650226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650226">(Apr 08 2021 at 13:17)</a>:</h4>
<p>in the <code>resolve_lifetimes</code> code?</p>



<a name="233650248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650248">(Apr 08 2021 at 13:17)</a>:</h4>
<p>In <code>Scope::Binder</code></p>



<a name="233650260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650260">(Apr 08 2021 at 13:17)</a>:</h4>
<p>let me get a link</p>



<a name="233650377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650377">(Apr 08 2021 at 13:18)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/69e1d22ddbc67b25141a735a22a8895a678b32ca/compiler/rustc_resolve/src/late/lifetimes.rs#L250">https://github.com/rust-lang/rust/blob/69e1d22ddbc67b25141a735a22a8895a678b32ca/compiler/rustc_resolve/src/late/lifetimes.rs#L250</a></p>



<a name="233650411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650411">(Apr 08 2021 at 13:18)</a>:</h4>
<p>k</p>



<a name="233650419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650419">(Apr 08 2021 at 13:18)</a>:</h4>
<p>(one sec, brb)</p>



<a name="233650593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233650593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233650593">(Apr 08 2021 at 13:20)</a>:</h4>
<p>But the <code>F: Fn(&amp;()) -&gt; Box&lt;dyn Future&lt;Output = ()&gt; + Unpin&gt;</code> bound that in the test essentially gets "lowered" to <code>for&lt;'a&gt; F: Fn(&amp;'a ()) -&gt; Box&lt;dyn for&lt;'a&gt; Future&lt;for&lt;'a&gt; Output = ()&gt; + Unpin&gt;</code>, which isn't correct</p>



<a name="233651638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651638">(Apr 08 2021 at 13:26)</a>:</h4>
<p>back</p>



<a name="233651694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651694">(Apr 08 2021 at 13:27)</a>:</h4>
<p>yeah that is wrong</p>



<a name="233651711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651711">(Apr 08 2021 at 13:27)</a>:</h4>
<p>is that what your PR fixes?</p>



<a name="233651750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651750">(Apr 08 2021 at 13:27)</a>:</h4>
<p>yes</p>



<a name="233651821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651821">(Apr 08 2021 at 13:28)</a>:</h4>
<p>so what's the rest of the bug</p>



<a name="233651865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651865">(Apr 08 2021 at 13:28)</a>:</h4>
<p>What do you mean?</p>



<a name="233651910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651910">(Apr 08 2021 at 13:28)</a>:</h4>
<p>So the other issue is that types with unused binders cause problems when then end up as a generator witness</p>



<a name="233651932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233651932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233651932">(Apr 08 2021 at 13:29)</a>:</h4>
<p>but it's orthogonal</p>



<a name="233652154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652154">(Apr 08 2021 at 13:30)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233648877">said</a>:</p>
<blockquote>
<p>well, we actually didn't get to the whole issue</p>
</blockquote>
<p>this</p>



<a name="233652178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652178">(Apr 08 2021 at 13:30)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233651910">said</a>:</p>
<blockquote>
<p>So the other issue is that types with unused binders cause problems when then end up as a generator witness</p>
</blockquote>
<p>is this what you meant?</p>



<a name="233652291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652291">(Apr 08 2021 at 13:31)</a>:</h4>
<p>yeah</p>



<a name="233652319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652319">(Apr 08 2021 at 13:32)</a>:</h4>
<p>I think we got through that</p>



<a name="233652456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652456">(Apr 08 2021 at 13:32)</a>:</h4>
<p>we talked about it</p>



<a name="233652462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652462">(Apr 08 2021 at 13:32)</a>:</h4>
<p>but not the solution I don't think</p>



<a name="233652501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652501">(Apr 08 2021 at 13:33)</a>:</h4>
<p>there's no solution to that yet</p>



<a name="233652529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652529">(Apr 08 2021 at 13:33)</a>:</h4>
<p>This PR only handles the second issue</p>



<a name="233652548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652548">(Apr 08 2021 at 13:33)</a>:</h4>
<p>i.e. invalid binder concatenation</p>



<a name="233652591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652591">(Apr 08 2021 at 13:33)</a>:</h4>
<p>ok</p>



<a name="233652597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652597">(Apr 08 2021 at 13:33)</a>:</h4>
<p>let me look at the PR in more depth</p>



<a name="233652604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652604">(Apr 08 2021 at 13:33)</a>:</h4>
<p>I also added some debug calls to the branch</p>



<a name="233652622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652622">(Apr 08 2021 at 13:34)</a>:</h4>
<p>to help me follow along</p>



<a name="233652674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652674">(Apr 08 2021 at 13:34)</a>:</h4>
<p>though I probably really want to start with your branch</p>



<a name="233652736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652736">(Apr 08 2021 at 13:34)</a>:</h4>
<p>probably</p>



<a name="233652796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652796">(Apr 08 2021 at 13:34)</a>:</h4>
<p>I probably could have added more comments, as always</p>



<a name="233652800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233652800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233652800">(Apr 08 2021 at 13:34)</a>:</h4>
<p>:/</p>



<a name="233653240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653240">(Apr 08 2021 at 13:37)</a>:</h4>
<p>you and every other PR author ever</p>



<a name="233653267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653267">(Apr 08 2021 at 13:38)</a>:</h4>
<p>that's what reviews are for :)</p>



<a name="233653346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653346">(Apr 08 2021 at 13:38)</a>:</h4>
<p>ok so I see you are adding a scope around trait refs</p>



<a name="233653451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653451">(Apr 08 2021 at 13:39)</a>:</h4>
<p>I'm a bit grumpy this requires so many diffs but I'll hold my tongue :)</p>



<a name="233653461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653461">(Apr 08 2021 at 13:39)</a>:</h4>
<p>as it's pre-existing and more than orthogonal</p>



<a name="233653534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653534">(Apr 08 2021 at 13:40)</a>:</h4>
<p>So, the idea is that this new scope is around the "syntactic trait ref"</p>



<a name="233653657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653657">(Apr 08 2021 at 13:41)</a>:</h4>
<p>I think it would be nice to just remove <code>from_poly_trait_ref</code>, but I'm not 100% sure how at the moment</p>



<a name="233653673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653673">(Apr 08 2021 at 13:41)</a>:</h4>
<p>I still don't 100% understand this comment</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">                    </span><span class="c1">// We've exited nested poly trait refs; mark that we are no longer in nested trait refs.</span>
<span class="w">                    </span><span class="c1">// We don't increase the late depth because this isn't a `Binder` scope</span>
</code></pre></div>



<a name="233653714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653714">(Apr 08 2021 at 13:41)</a>:</h4>
<p>Right so</p>



<a name="233653760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653760">(Apr 08 2021 at 13:41)</a>:</h4>
<p>Let's think about <code>F: Fn(&amp;()) -&gt; Box&lt;dyn Future&lt;Output = ()&gt; + Unpin&gt;</code></p>



<a name="233653820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233653820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233653820">(Apr 08 2021 at 13:42)</a>:</h4>
<p>I'll try to "annotate" it with Scopes</p>



<a name="233654000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654000">(Apr 08 2021 at 13:43)</a>:</h4>
<p><code>{TraitRefBoundary} F: {Binder} Fn(&amp;()) -&gt; Box&lt;dyn {TraitRefBoundary} {Binder} Future&lt;Output = ()&gt; + {Binder} Unpin&gt;</code></p>



<a name="233654017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654017">(Apr 08 2021 at 13:43)</a>:</h4>
<p>I'm not sure if that helps or makes things worse</p>



<a name="233654022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654022">(Apr 08 2021 at 13:43)</a>:</h4>
<p>But</p>



<a name="233654035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654035">(Apr 08 2021 at 13:43)</a>:</h4>
<p>For that comment specifically</p>



<a name="233654058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654058">(Apr 08 2021 at 13:44)</a>:</h4>
<p>I'd prefer a slightly different notation that makes the "extent" clearer, but it helps</p>



<a name="233654067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654067">(Apr 08 2021 at 13:44)</a>:</h4>
<p>I get it</p>



<a name="233654111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654111">(Apr 08 2021 at 13:44)</a>:</h4>
<p>however</p>



<a name="233654112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654112">(Apr 08 2021 at 13:44)</a>:</h4>
<p>Say we're looking at <code>Future</code></p>



<a name="233654135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654135">(Apr 08 2021 at 13:44)</a>:</h4>
<p>is this just about named regions?</p>



<a name="233654160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654160">(Apr 08 2021 at 13:44)</a>:</h4>
<p>"this"?</p>



<a name="233654184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654184">(Apr 08 2021 at 13:44)</a>:</h4>
<p>this functon</p>



<a name="233654237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654237">(Apr 08 2021 at 13:45)</a>:</h4>
<p>I guess the lifetime name can be <code>Implicit</code></p>



<a name="233654238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654238">(Apr 08 2021 at 13:45)</a>:</h4>
<p>Which function</p>



<a name="233654373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654373">(Apr 08 2021 at 13:46)</a>:</h4>
<p>What I really don't like about the current state is that we essentially have to identity the "late depth" in multiple places</p>



<a name="233654423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654423">(Apr 08 2021 at 13:46)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">    </span><span class="k">fn</span> <span class="nf">resolve_lifetime_ref</span><span class="p">(</span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">lifetime_ref</span>: <span class="kp">&amp;</span><span class="o">'</span><span class="na">tcx</span> <span class="nc">hir</span>::<span class="n">Lifetime</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</code></pre></div>



<a name="233654450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654450">(Apr 08 2021 at 13:46)</a>:</h4>
<p>seems like "yes it is"</p>



<a name="233654464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654464">(Apr 08 2021 at 13:46)</a>:</h4>
<p>maybe that comment appears in multiple places</p>



<a name="233654483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654483">(Apr 08 2021 at 13:46)</a>:</h4>
<p>It does, yes</p>



<a name="233654519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654519">(Apr 08 2021 at 13:46)</a>:</h4>
<p>Because, like I said, we basically have to duplicate this logic</p>



<a name="233654534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654534">(Apr 08 2021 at 13:47)</a>:</h4>
<p>oh wait</p>



<a name="233654539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654539">(Apr 08 2021 at 13:47)</a>:</h4>
<p>ha</p>



<a name="233654546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654546">(Apr 08 2021 at 13:47)</a>:</h4>
<p>I was misunderstanding your diff</p>



<a name="233654571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654571">(Apr 08 2021 at 13:47)</a>:</h4>
<p>but also, yes</p>



<a name="233654587"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654587" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654587">(Apr 08 2021 at 13:47)</a>:</h4>
<p>ok</p>



<a name="233654709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654709">(Apr 08 2021 at 13:48)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233654519">said</a>:</p>
<blockquote>
<p>Because, like I said, we basically have to duplicate this logic</p>
</blockquote>
<p>yes. and it's fiddly logic.</p>



<a name="233654781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654781">(Apr 08 2021 at 13:48)</a>:</h4>
<p>your PR doesn't seem to have a diff to <code>resolve_lifetime_ref</code>, actually, is that a bug?</p>



<a name="233654835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233654835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233654835">(Apr 08 2021 at 13:49)</a>:</h4>
<p>let me look</p>



<a name="233655019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655019">(Apr 08 2021 at 13:50)</a>:</h4>
<p>Let's a diff there?</p>



<a name="233655089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655089">(Apr 08 2021 at 13:50)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/83870/files#diff-87880ceb989914cb25dc43961cb1cee5e7b07d8b04bcd9c967e7995cd85315d9R2344">https://github.com/rust-lang/rust/pull/83870/files#diff-87880ceb989914cb25dc43961cb1cee5e7b07d8b04bcd9c967e7995cd85315d9R2344</a></p>



<a name="233655123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655123">(Apr 08 2021 at 13:50)</a>:</h4>
<p>sorry, you are correct</p>



<a name="233655127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655127">(Apr 08 2021 at 13:50)</a>:</h4>
<p>my bad</p>



<a name="233655160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655160">(Apr 08 2021 at 13:50)</a>:</h4>
<p>I was starting to worry</p>



<a name="233655169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655169">(Apr 08 2021 at 13:50)</a>:</h4>
<p>I didn't scroll up far enough</p>



<a name="233655194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655194">(Apr 08 2021 at 13:50)</a>:</h4>
<p>ok, I think i'm starting to understand what's going on</p>



<a name="233655831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655831">(Apr 08 2021 at 13:54)</a>:</h4>
<p>gonna go get a snack and ponder it</p>



<a name="233655872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655872">(Apr 08 2021 at 13:55)</a>:</h4>
<p>I'd like to add a comment but I'm probably ready to r+ the pr</p>



<a name="233655897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655897">(Apr 08 2021 at 13:55)</a>:</h4>
<p>i want to write the comment to convince myself i grok it</p>



<a name="233655910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655910">(Apr 08 2021 at 13:55)</a>:</h4>
<p>then i will dig a bit into the other bug</p>



<a name="233655938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655938">(Apr 08 2021 at 13:55)</a>:</h4>
<p>Works for me :)</p>



<a name="233655995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233655995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233655995">(Apr 08 2021 at 13:55)</a>:</h4>
<p>Maybe tomorrow we can discuss the "proper" solution for the other part of the bug (generator witness/erased types)</p>



<a name="233656121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656121">(Apr 08 2021 at 13:56)</a>:</h4>
<p>unrelated: I have to figure out how to get rust-analyzer to do its build in another directory</p>



<a name="233656135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656135">(Apr 08 2021 at 13:56)</a>:</h4>
<p>i think that's very easy</p>



<a name="233656219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656219">(Apr 08 2021 at 13:57)</a>:</h4>
<p>oh</p>



<a name="233656225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656225">(Apr 08 2021 at 13:57)</a>:</h4>
<p>I think i did it already</p>



<a name="233656264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656264">(Apr 08 2021 at 13:57)</a>:</h4>
<p>then i am getting some <em>other</em> weird incremental build fail</p>



<a name="233656637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656637">(Apr 08 2021 at 13:59)</a>:</h4>
<p>I get those from time to time</p>



<a name="233656668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233656668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233656668">(Apr 08 2021 at 13:59)</a>:</h4>
<p>Sometimes just have to <code>./x.py clean</code></p>



<a name="233659222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659222">(Apr 08 2021 at 14:14)</a>:</h4>
<p>so...</p>



<a name="233659250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659250">(Apr 08 2021 at 14:14)</a>:</h4>
<p>the test passes now, <span class="user-mention" data-user-id="232957">@Jack Huey</span>, but you see this as just a workaround?</p>



<a name="233659436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659436">(Apr 08 2021 at 14:15)</a>:</h4>
<p>It's not a workaround per se. It fixes a bug that is orthogonal to the generator witness/erasing types bug. But this bug wouldn't be a problem <em>in most cases</em> without the other bug.</p>



<a name="233659588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659588">(Apr 08 2021 at 14:16)</a>:</h4>
<p>But yes, there's still a very real issue that needs to be fixed.</p>



<a name="233659651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659651">(Apr 08 2021 at 14:16)</a>:</h4>
<p>But it's less severe with this fix.</p>



<a name="233659951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659951">(Apr 08 2021 at 14:18)</a>:</h4>
<p>yeah, ok</p>



<a name="233659963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233659963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233659963">(Apr 08 2021 at 14:18)</a>:</h4>
<p>workaround was the wrong term</p>



<a name="233660004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660004">(Apr 08 2021 at 14:18)</a>:</h4>
<p>but the point is, fixing this bug fixes the original <em>issue</em> but not the underlying problem</p>



<a name="233660017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660017">(Apr 08 2021 at 14:19)</a>:</h4>
<p>do you have a test that triggers this underlying problem?</p>



<a name="233660055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660055">(Apr 08 2021 at 14:19)</a>:</h4>
<p>It's in the OP</p>



<a name="233660107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660107">(Apr 08 2021 at 14:19)</a>:</h4>
<p>also, something i find interesting in the code; we can always compute the <em>index</em> the named ifetime will have, it seems, even if we don't always know its <em>depth</em></p>



<a name="233660152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660152">(Apr 08 2021 at 14:19)</a>:</h4>
<p>This is true</p>



<a name="233660153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660153">(Apr 08 2021 at 14:19)</a>:</h4>
<p>i guess that makes sense</p>



<a name="233660219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660219">(Apr 08 2021 at 14:20)</a>:</h4>
<p>obviously we can't know its depth</p>



<a name="233660223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660223">(Apr 08 2021 at 14:20)</a>:</h4>
<p>If I understand what you're saying, we <em>do</em></p>



<a name="233660300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660300">(Apr 08 2021 at 14:20)</a>:</h4>
<p>mostly it means: we never have binders that will get concatenated into other, parent binders, but we don't know those parents yet --</p>



<a name="233660335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660335">(Apr 08 2021 at 14:20)</a>:</h4>
<p>and also that we never binders that are sometimes concatenated (for some references) but not others</p>



<a name="233660436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660436">(Apr 08 2021 at 14:21)</a>:</h4>
<p>I'm not sure I follow</p>



<a name="233660457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660457">(Apr 08 2021 at 14:21)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/83737#issue-847762226">this op</a>?</p>



<a name="233660514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660514">(Apr 08 2021 at 14:21)</a>:</h4>
<p>No, in the PR description</p>



<a name="233660602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233660602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233660602">(Apr 08 2021 at 14:22)</a>:</h4>
<p>It's the same test that gets fixed but adds a <code>for&lt;'a&gt;</code> around <code>Future</code></p>



<a name="233662269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662269">(Apr 08 2021 at 14:31)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> </p>
<p>so <a href="https://github.com/rust-lang/rust/blob/1a14315975224951bc993455783678154afade09/compiler/rustc_resolve/src/late/lifetimes.rs#L2369-L23720">this code</a>:</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">                        </span><span class="c1">// We've already seen a binder that is a poly trait ref and this one is too,</span>
<span class="w">                        </span><span class="c1">// that means that they are nested and we are concatenating the bound vars;</span>
<span class="w">                        </span><span class="c1">// don't increase the late depth.</span>
<span class="w">                        </span><span class="p">(</span><span class="kc">true</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
</code></pre></div>



<a name="233662329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662329">(Apr 08 2021 at 14:31)</a>:</h4>
<p>the primary example here is associated trait bounds, right?</p>



<a name="233662349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662349">(Apr 08 2021 at 14:32)</a>:</h4>
<p>The <em>only</em> example</p>



<a name="233662828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662828">(Apr 08 2021 at 14:34)</a>:</h4>
<p>what's the syntax / HIR for that?</p>



<a name="233662873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662873">(Apr 08 2021 at 14:34)</a>:</h4>
<p>this feels like a very general mechanism for a very specific problem</p>



<a name="233662888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662888">(Apr 08 2021 at 14:34)</a>:</h4>
<p>and I'm wondering if there's another, more targeted fix</p>



<a name="233662941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233662941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233662941">(Apr 08 2021 at 14:35)</a>:</h4>
<p>at minimum I want to adjust the comment to identify the code that is triggering this path</p>



<a name="233663001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663001">(Apr 08 2021 at 14:35)</a>:</h4>
<p>i'm going to push a few commits in a sec</p>



<a name="233663051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663051">(Apr 08 2021 at 14:35)</a>:</h4>
<p>For associated type bounds?</p>



<a name="233663134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663134">(Apr 08 2021 at 14:36)</a>:</h4>
<p><code>for&lt;'a&gt; T: Iterator&lt;Item: for&lt;'b&gt; Foo&lt;'a, 'b&gt;&gt;</code></p>



<a name="233663149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663149">(Apr 08 2021 at 14:36)</a>:</h4>
<p>example, right?</p>



<a name="233663199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663199">(Apr 08 2021 at 14:36)</a>:</h4>
<p>yeah</p>



<a name="233663364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663364">(Apr 08 2021 at 14:37)</a>:</h4>
<p><code>Item: Foo</code> is stored in <code>GenericArg.bindings</code></p>



<a name="233663397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663397">(Apr 08 2021 at 14:38)</a>:</h4>
<p>And "visited" through <a href="https://github.com/rust-lang/rust/blob/69e1d22ddbc67b25141a735a22a8895a678b32ca/compiler/rustc_resolve/src/late/lifetimes.rs#L2608">https://github.com/rust-lang/rust/blob/69e1d22ddbc67b25141a735a22a8895a678b32ca/compiler/rustc_resolve/src/late/lifetimes.rs#L2608</a></p>



<a name="233663506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663506">(Apr 08 2021 at 14:38)</a>:</h4>
<p>As an example, I was wondering if we could make the <code>for&lt;'b&gt;</code> binder "tagged differently" somehow</p>



<a name="233663527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663527">(Apr 08 2021 at 14:38)</a>:</h4>
<p>so that we just <em>never</em> increment <code>late_depth</code> on that sort of binder</p>



<a name="233663548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663548">(Apr 08 2021 at 14:38)</a>:</h4>
<p>and then we don't have to track <code>in_poly_trait_ref</code></p>



<a name="233663601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663601">(Apr 08 2021 at 14:39)</a>:</h4>
<p>I guess that might not .. quite work</p>



<a name="233663662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663662">(Apr 08 2021 at 14:39)</a>:</h4>
<p>Yeah, I thought about just storing the <code>late_depth</code> <em>in</em> <code>Scope::Binder</code></p>



<a name="233663720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663720">(Apr 08 2021 at 14:39)</a>:</h4>
<p>you could do it, counting downwards, no?</p>



<a name="233663768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663768">(Apr 08 2021 at 14:39)</a>:</h4>
<p>not the 'depth' in the sense of debruijn index</p>



<a name="233663791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663791">(Apr 08 2021 at 14:40)</a>:</h4>
<p>but the 'inverse' debruijn index</p>



<a name="233663882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663882">(Apr 08 2021 at 14:40)</a>:</h4>
<p>I mean, you would count upwards</p>



<a name="233663915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663915">(Apr 08 2021 at 14:40)</a>:</h4>
<p>I guess up and down is confusing</p>



<a name="233663959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663959">(Apr 08 2021 at 14:40)</a>:</h4>
<p>And then to get the <code>DebruijnIndex</code>, you find the nearest scope and then the scope the lifetime is defined and subtract</p>



<a name="233663976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663976">(Apr 08 2021 at 14:40)</a>:</h4>
<p>what I mean is if you had <code>for&lt;'a&gt; { for&lt;'b&gt; { .. } }</code> you would store 0 and 1 for <code>for&lt;'a&gt;</code> and <code>for&lt;'b&gt;</code> respectively</p>



<a name="233663998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233663998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233663998">(Apr 08 2021 at 14:41)</a>:</h4>
<p>yeah, exactly</p>



<a name="233664005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664005">(Apr 08 2021 at 14:41)</a>:</h4>
<p>would that not work for some reason?</p>



<a name="233664094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664094">(Apr 08 2021 at 14:41)</a>:</h4>
<p>I can't think of why it wouldn't work</p>



<a name="233664161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664161">(Apr 08 2021 at 14:41)</a>:</h4>
<p>put another way:</p>



<a name="233664257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664257">(Apr 08 2021 at 14:42)</a>:</h4>
<p>so, first, I like that fix better, feels cleaner</p>



<a name="233664272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664272">(Apr 08 2021 at 14:42)</a>:</h4>
<p>and it fits with pre-computing the indices</p>



<a name="233664332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664332">(Apr 08 2021 at 14:42)</a>:</h4>
<p>well, you still I think still have to keep track of the "syntactic trait ref"</p>



<a name="233664383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664383">(Apr 08 2021 at 14:43)</a>:</h4>
<p>for when you construct a <code>Scope::Binder</code> in the first place</p>



<a name="233664386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664386">(Apr 08 2021 at 14:43)</a>:</h4>
<p>but also I think that if we</p>



<a name="233664422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664422">(Apr 08 2021 at 14:43)</a>:</h4>
<p>change <code>from_poly_trait_ref</code> a bit</p>



<a name="233664448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664448">(Apr 08 2021 at 14:43)</a>:</h4>
<p><code>                Scope::Binder { ref lifetimes, from_poly_trait_ref, s, .. } =&gt; {</code></p>



<a name="233664460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664460">(Apr 08 2021 at 14:43)</a>:</h4>
<p>so it is only true on the <code>for&lt;'b&gt;</code></p>



<a name="233664475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664475">(Apr 08 2021 at 14:43)</a>:</h4>
<p>I <em>think</em> we could just skip updating the <code>late_depth</code> there altogether</p>



<a name="233664572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664572">(Apr 08 2021 at 14:44)</a>:</h4>
<p>actually</p>



<a name="233664608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664608">(Apr 08 2021 at 14:44)</a>:</h4>
<p>this code is weid</p>



<a name="233664614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664614">(Apr 08 2021 at 14:44)</a>:</h4>
<p>are you sure it's right?</p>



<a name="233664641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664641">(Apr 08 2021 at 14:44)</a>:</h4>
<p>in particular, consider my example above</p>



<a name="233664683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664683">(Apr 08 2021 at 14:44)</a>:</h4>
<p><code>for&lt;'a&gt; T: Iterator&lt;Item: for&lt;'b&gt; Foo&lt;'a, 'b&gt;&gt;</code></p>



<a name="233664722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664722">(Apr 08 2021 at 14:45)</a>:</h4>
<p>when we resolve <code>'a</code> here</p>



<a name="233664756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664756">(Apr 08 2021 at 14:45)</a>:</h4>
<p>we expect a <code>DebruijnIndex</code> of <code>0</code>, right?</p>



<a name="233664770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664770">(Apr 08 2021 at 14:45)</a>:</h4>
<p>yes</p>



<a name="233664781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664781">(Apr 08 2021 at 14:45)</a>:</h4>
<p>but I think we will get <code>1</code> here</p>



<a name="233664876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233664876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233664876">(Apr 08 2021 at 14:46)</a>:</h4>
<p><code>in_poly_trait_ref</code> will be false, <code>from_poly_trait_ref</code> will be true, so we transition and increase <code>late_depth</code> by 1</p>



<a name="233665004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665004">(Apr 08 2021 at 14:46)</a>:</h4>
<p>that is, the binder structure for the above is (I think)</p>
<div class="codehilite"><pre><span></span><code>* TraitRefBoundary
    * Binder(&#39;a, from_poly_trait_ref; true)
        * Binder(&#39;b, from_poly_trait_ref; true)
</code></pre></div>



<a name="233665040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665040">(Apr 08 2021 at 14:47)</a>:</h4>
<p>yeah, I see your point, but I'm trying to think if that is or isn't wrong</p>



<a name="233665125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665125">(Apr 08 2021 at 14:47)</a>:</h4>
<p>I think <code>from_poly_trait_ref</code> should be renamed to <code>concatenated</code> and it should act like I suggested above</p>



<a name="233665179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665179">(Apr 08 2021 at 14:47)</a>:</h4>
<p>i can maybe try to get a test and poke at it</p>



<a name="233665191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665191">(Apr 08 2021 at 14:47)</a>:</h4>
<p>going to have to stop soon and do something else i suspect</p>



<a name="233665261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665261">(Apr 08 2021 at 14:48)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233664332">said</a>:</p>
<blockquote>
<p>well, you still I think still have to keep track of the "syntactic trait ref"</p>
</blockquote>
<p>that may be so, but that's not the part that bothers me; it's the fiddly loop with the boolean flags etc</p>



<a name="233665281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665281">(Apr 08 2021 at 14:48)</a>:</h4>
<p>I will try to play with this today</p>



<a name="233665328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665328">(Apr 08 2021 at 14:48)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233665261">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233664332">said</a>:</p>
<blockquote>
<p>well, you still I think still have to keep track of the "syntactic trait ref"</p>
</blockquote>
<p>that may be so, but that's not the part that bothers me; it's the fiddly loop with the boolean flags etc</p>
</blockquote>
<p>agreed, I don't like it either</p>



<a name="233665355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665355">(Apr 08 2021 at 14:48)</a>:</h4>
<p>though i am not convinced that we need the trait ref boundary still</p>



<a name="233665378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665378">(Apr 08 2021 at 14:48)</a>:</h4>
<p>I think it comes down to knowing whether a binder is a "concatenated" binder or not</p>



<a name="233665473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665473">(Apr 08 2021 at 14:49)</a>:</h4>
<p>ok. sorry <span class="user-mention" data-user-id="232957">@Jack Huey</span> it's taken me a few days to give this attention, and thanks <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span> for pushing it this far. I can talk more at our usual time tomorrow, and/or I may be around a bit today too</p>



<a name="233665509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665509">(Apr 08 2021 at 14:49)</a>:</h4>
<p>I am not <em>opposed</em> to r+'ing the PR as it stands if it's time sensitive</p>



<a name="233665516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665516">(Apr 08 2021 at 14:49)</a>:</h4>
<p>I'll be around all day</p>



<a name="233665597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665597">(Apr 08 2021 at 14:50)</a>:</h4>
<p>I think we should try to get this in by tomorrow</p>



<a name="233665598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665598">(Apr 08 2021 at 14:50)</a>:</h4>
<p>I get what it does and I think it's "more correct", I just think it can be cleaned up</p>



<a name="233665629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665629">(Apr 08 2021 at 14:50)</a>:</h4>
<p>maybe we should land it and then do a refactoring pr?</p>



<a name="233665650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665650">(Apr 08 2021 at 14:50)</a>:</h4>
<p>I can do that</p>



<a name="233665741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665741">(Apr 08 2021 at 14:50)</a>:</h4>
<p>let me push this comment real quick</p>



<a name="233665840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665840">(Apr 08 2021 at 14:51)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233665598">said</a>:</p>
<blockquote>
<p>I get what it does and I think it's "more correct", I just think it can be cleaned up</p>
</blockquote>
<p>ah well I am contending the code is actually wrong as is, too</p>



<a name="233665865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665865">(Apr 08 2021 at 14:51)</a>:</h4>
<p>I also was just thinking that i hadn't thought about a few other cases</p>



<a name="233665869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665869">(Apr 08 2021 at 14:51)</a>:</h4>
<p>notably</p>



<a name="233665922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665922">(Apr 08 2021 at 14:52)</a>:</h4>
<p><code>T: for&lt;'a&gt; Iterator&lt;Item: for&lt;'b&gt; Iterator&lt;Item: for&lt;'c&gt; Trait&lt;'a, 'b, 'c&gt;&gt;&gt;</code></p>



<a name="233665968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665968">(Apr 08 2021 at 14:52)</a>:</h4>
<p>but i think my logic stands</p>



<a name="233665998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233665998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233665998">(Apr 08 2021 at 14:52)</a>:</h4>
<p>all those inner binders are "concatenated"</p>



<a name="233666080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666080">(Apr 08 2021 at 14:52)</a>:</h4>
<p>We have tests like that now and they're passing</p>



<a name="233666103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666103">(Apr 08 2021 at 14:52)</a>:</h4>
<p>i'll look, I think it's wrong</p>



<a name="233666111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666111">(Apr 08 2021 at 14:52)</a>:</h4>
<p>So I think there's just something I'm not realizing</p>



<a name="233666156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666156">(Apr 08 2021 at 14:53)</a>:</h4>
<p>do you remember the test names off hand?</p>



<a name="233666163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666163">(Apr 08 2021 at 14:53)</a>:</h4>
<p>but I'll look more at it for sure</p>



<a name="233666180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666180">(Apr 08 2021 at 14:53)</a>:</h4>
<p><code>lifetimes</code> dir?</p>



<a name="233666216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666216">(Apr 08 2021 at 14:53)</a>:</h4>
<p>well</p>



<a name="233666242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666242">(Apr 08 2021 at 14:53)</a>:</h4>
<p><code>associated_type_bounds</code></p>



<a name="233666495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666495">(Apr 08 2021 at 14:54)</a>:</h4>
<p><code>hrtb</code> has some tests like that</p>



<a name="233666805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666805">(Apr 08 2021 at 14:56)</a>:</h4>
<p>I pushed a commit to your branch, <span class="user-mention" data-user-id="232957">@Jack Huey</span>, tell me if you agree with the text :)</p>



<a name="233666959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233666959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233666959">(Apr 08 2021 at 14:57)</a>:</h4>
<p>i agree</p>



<a name="233667636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233667636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233667636">(Apr 08 2021 at 15:00)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> so here is a really simple test:</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="cp">#![feature(associated_type_bounds)]</span><span class="w"></span>

<span class="k">trait</span><span class="w"> </span><span class="n">Item</span><span class="o">&lt;'</span><span class="na">a</span><span class="p">,</span><span class="w"> </span><span class="o">'</span><span class="na">b</span><span class="p">,</span><span class="w"> </span><span class="o">'</span><span class="na">c</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">()</span><span class="w"></span>
<span class="k">where</span><span class="w"></span>
<span class="w">    </span><span class="n">T</span>: <span class="nc">for</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="w"> </span><span class="nb">Iterator</span><span class="o">&lt;</span><span class="n">Item</span>: <span class="nc">for</span><span class="o">&lt;'</span><span class="na">b</span><span class="o">&gt;</span><span class="w"> </span><span class="nb">Iterator</span><span class="o">&lt;</span><span class="n">Item</span>: <span class="nc">for</span><span class="o">&lt;'</span><span class="na">c</span><span class="o">&gt;</span><span class="w"> </span><span class="n">Item</span><span class="o">&lt;'</span><span class="na">a</span><span class="p">,</span><span class="w"> </span><span class="o">'</span><span class="na">b</span><span class="p">,</span><span class="w"> </span><span class="o">'</span><span class="na">c</span><span class="o">&gt;&gt;&gt;</span><span class="p">,</span><span class="w"></span>
<span class="p">{</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
</code></pre></div>



<a name="233667689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233667689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233667689">(Apr 08 2021 at 15:00)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233666959">said</a>:</p>
<blockquote>
<p>i agree</p>
</blockquote>
<p>ok, then r=me with that commit for now</p>



<a name="233667756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233667756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233667756">(Apr 08 2021 at 15:00)</a>:</h4>
<p>but I still think the code is wrong :)</p>



<a name="233667802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233667802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233667802">(Apr 08 2021 at 15:00)</a>:</h4>
<p>I am trying to figure out how to extract the resulting setup from that test</p>



<a name="233667933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233667933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233667933">(Apr 08 2021 at 15:01)</a>:</h4>
<p>e.g., I'd like to see the debruijn index etc that were chosen for each lifetime name</p>



<a name="233668345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233668345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233668345">(Apr 08 2021 at 15:02)</a>:</h4>
<div class="codehilite"><pre><span></span><code>DEBUG rustc_resolve::late::lifetimes resolve_lifetime_ref(lifetime_ref=lifetime(HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 9 }: &#39;a))
DEBUG rustc_resolve::late::lifetimes insert_lifetime: lifetime &#39;a (hir_id=HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 9 }) resolved to LateBound(DebruijnIndex(2), DefId(0:9 ~ niko[317d]::foo::&#39;a), ExplicitOrElided) span=&quot;niko.rs:7:67: 7:69&quot;
DEBUG rustc_resolve::late::lifetimes insert_lifetime: track_lifetime_uses=true
DEBUG rustc_resolve::late::lifetimes insert_lifetime: first use of DefId(0:9 ~ niko[317d]::foo::&#39;a)
DEBUG rustc_resolve::late::lifetimes visit_lifetime(lifetime_ref=lifetime(HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 10 }: &#39;b))
DEBUG rustc_resolve::late::lifetimes resolve_lifetime_ref(lifetime_ref=lifetime(HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 10 }: &#39;b))
DEBUG rustc_resolve::late::lifetimes insert_lifetime: lifetime &#39;b (hir_id=HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 10 }) resolved to LateBound(DebruijnIndex(1), DefId(0:10 ~ niko[317d]::foo::&#39;b), ExplicitOrElided) span=&quot;niko.rs:7:71: 7:73&quot;
DEBUG rustc_resolve::late::lifetimes insert_lifetime: track_lifetime_uses=true
DEBUG rustc_resolve::late::lifetimes insert_lifetime: first use of DefId(0:10 ~ niko[317d]::foo::&#39;b)
DEBUG rustc_resolve::late::lifetimes visit_lifetime(lifetime_ref=lifetime(HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 11 }: &#39;c))
DEBUG rustc_resolve::late::lifetimes resolve_lifetime_ref(lifetime_ref=lifetime(HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 11 }: &#39;c))
DEBUG rustc_resolve::late::lifetimes insert_lifetime: lifetime &#39;c (hir_id=HirId { owner: DefId(0:7 ~ niko[317d]::foo), local_id: 11 }) resolved to LateBound(DebruijnIndex(0), DefId(0:11 ~ niko[317d]::foo::&#39;c), ExplicitOrElided) span=&quot;niko.rs:7:75: 7:77&quot;
DEBUG rustc_resolve::late::lifetimes insert_lifetime: track_lifetime_uses=true
DEBUG rustc_resolve::late::lifetimes insert_lifetime: first use of DefId(0:11 ~ niko[317d]::foo::&#39;c)
</code></pre></div>



<a name="233668374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233668374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233668374">(Apr 08 2021 at 15:02)</a>:</h4>
<p>it sure <em>looks</em> wrong</p>



<a name="233668656"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233668656" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233668656">(Apr 08 2021 at 15:03)</a>:</h4>
<p><code>insert_lifetime: lifetime 'a (...) resolved to LateBound(DebruijnIndex(2),</code></p>



<a name="233669136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233669136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233669136">(Apr 08 2021 at 15:04)</a>:</h4>
<p>ugh okay</p>



<a name="233669176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233669176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233669176">(Apr 08 2021 at 15:04)</a>:</h4>
<p>how did that slip by</p>



<a name="233745077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233745077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233745077">(Apr 08 2021 at 23:17)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> did you want to make more changes before landing this, or land as-is and make a follow up change?</p>



<a name="233745238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233745238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233745238">(Apr 08 2021 at 23:19)</a>:</h4>
<p>Okay, let's land this as is, since it fixes some critical bugs; but I have some followup cleanups that I can make a separate PR for and discuss with Niko tomorrow morning</p>



<a name="233816589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233816589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233816589">(Apr 09 2021 at 13:03)</a>:</h4>
<p>So, I tried to implement what we talked about Niko, but realized it's not quite as straightforward as I was hoping</p>



<a name="233816652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233816652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233816652">(Apr 09 2021 at 13:03)</a>:</h4>
<p>Particularly, resolving elided lifetimes is somewhat annoying</p>



<a name="233816843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233816843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233816843">(Apr 09 2021 at 13:05)</a>:</h4>
<p>Because we have to ask "how many binder scopes do we go through before we get to an elision scope"</p>



<a name="233817029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233817029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233817029">(Apr 09 2021 at 13:06)</a>:</h4>
<p>So, I guess I could do what I did for resolving lifetime refs but just find the binder scope above the elision scope</p>



<a name="233817417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233817417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233817417">(Apr 09 2021 at 13:09)</a>:</h4>
<p>But then <a href="https://github.com/rust-lang/rust/blob/bc66b92f7f1114a78b98504a927ca9c0aa12c71a/compiler/rustc_resolve/src/late/lifetimes.rs#L3105">this</a> bit of code becomes more complicated because we can't just break out of the loop</p>



<a name="233818603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233818603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233818603">(Apr 09 2021 at 13:16)</a>:</h4>
<p>hmm</p>



<a name="233818772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233818772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233818772">(Apr 09 2021 at 13:17)</a>:</h4>
<p>Okay, I might have found a way around that</p>



<a name="233818812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233818812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233818812">(Apr 09 2021 at 13:17)</a>:</h4>
<p>Basically have something like</p>
<div class="codehilite"><pre><span></span><code>        let mut late_depth = 0;
        let mut first_binder_depth = None;
</code></pre></div>



<a name="233818868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233818868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233818868">(Apr 09 2021 at 13:18)</a>:</h4>
<p>And in the binder scope match arm:</p>



<a name="233818896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233818896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233818896">(Apr 09 2021 at 13:18)</a>:</h4>
<div class="codehilite"><pre><span></span><code>                    first_binder_depth = first_binder_depth.or(Some(binder_depth));
                    late_depth = first_binder_depth.unwrap() - binder_depth;
</code></pre></div>



<a name="233818902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233818902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233818902">(Apr 09 2021 at 13:18)</a>:</h4>
<p>I think that'll work</p>



<a name="233819009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819009">(Apr 09 2021 at 13:19)</a>:</h4>
<p>I'm reading the code to see what you are talking about</p>



<a name="233819022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819022">(Apr 09 2021 at 13:19)</a>:</h4>
<p>but I'm also making <span aria-label="coffee" class="emoji emoji-2615" role="img" title="coffee">:coffee:</span></p>



<a name="233819045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819045">(Apr 09 2021 at 13:19)</a>:</h4>
<p>No worries</p>



<a name="233819129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819129">(Apr 09 2021 at 13:19)</a>:</h4>
<p>so wait</p>



<a name="233819188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819188">(Apr 09 2021 at 13:20)</a>:</h4>
<p>oh</p>



<a name="233819212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819212">(Apr 09 2021 at 13:20)</a>:</h4>
<p>we are talking about knowing the "inverse depth" at each point</p>



<a name="233819224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819224">(Apr 09 2021 at 13:20)</a>:</h4>
<p>yeah</p>



<a name="233819227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819227">(Apr 09 2021 at 13:20)</a>:</h4>
<p>is that right?</p>



<a name="233819296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819296">(Apr 09 2021 at 13:20)</a>:</h4>
<p>So, I've already written the code that stores the "inverse depth" in the binder scope</p>



<a name="233819322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819322">(Apr 09 2021 at 13:20)</a>:</h4>
<p>It's now about just <em>using</em> it</p>



<a name="233819335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819335">(Apr 09 2021 at 13:21)</a>:</h4>
<p>and the problem is ..</p>



<a name="233819353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819353">(Apr 09 2021 at 13:21)</a>:</h4>
<p>what are the scopes when we are processing an Elision?</p>



<a name="233819422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819422">(Apr 09 2021 at 13:21)</a>:</h4>
<p>somewhat</p>



<a name="233819446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819446">(Apr 09 2021 at 13:21)</a>:</h4>
<p>it seems like we have <code>Binder  { Elision { ...</code></p>



<a name="233819466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819466">(Apr 09 2021 at 13:21)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233819353">said</a>:</p>
<blockquote>
<p>what are the scopes when we are processing an Elision?</p>
</blockquote>
<p>sorry, I wasn't posting that as the <em>problem</em></p>



<a name="233819474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819474">(Apr 09 2021 at 13:22)</a>:</h4>
<p>it was just a question</p>



<a name="233819533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819533">(Apr 09 2021 at 13:22)</a>:</h4>
<p>Yes</p>



<a name="233819541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819541">(Apr 09 2021 at 13:22)</a>:</h4>
<p>mostly I wanted to know if it was <code>Elision { Binder { ... </code> or vice versa :)</p>



<a name="233819554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819554">(Apr 09 2021 at 13:22)</a>:</h4>
<p>based on reading the code</p>



<a name="233819590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819590">(Apr 09 2021 at 13:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233819446">said</a>:</p>
<blockquote>
<p>it seems like we have <code>Binder  { Elision { ...</code></p>
</blockquote>
<p>this</p>



<a name="233819604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819604">(Apr 09 2021 at 13:22)</a>:</h4>
<p>it seems like Binder { Elision {</p>



<a name="233819609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819609">(Apr 09 2021 at 13:22)</a>:</h4>
<p>ok, good</p>



<a name="233819632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819632">(Apr 09 2021 at 13:22)</a>:</h4>
<p>and so the problem is -- we need to know the "inverse depth" the elision is at ?</p>



<a name="233819649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819649">(Apr 09 2021 at 13:22)</a>:</h4>
<p>why not just store "inverse depth" in the elision itself?</p>



<a name="233819661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819661">(Apr 09 2021 at 13:23)</a>:</h4>
<p>I thought about that :)</p>



<a name="233819662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819662">(Apr 09 2021 at 13:23)</a>:</h4>
<p>or you could of course search backwards for the next binder</p>



<a name="233819709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819709">(Apr 09 2021 at 13:23)</a>:</h4>
<p>it's kind of equivalent</p>



<a name="233819722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819722">(Apr 09 2021 at 13:23)</a>:</h4>
<p>just a quesiton of when you do it</p>



<a name="233819738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819738">(Apr 09 2021 at 13:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233819662">said</a>:</p>
<blockquote>
<p>or you could of course search backwards for the next binder</p>
</blockquote>
<p>What I was saying for this, is then we no longer can just <code>break</code> for the elision error</p>



<a name="233819786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819786">(Apr 09 2021 at 13:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233819649">said</a>:</p>
<blockquote>
<p>why not just store "inverse depth" in the elision itself?</p>
</blockquote>
<p>this was the other option I considered</p>



<a name="233819865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819865">(Apr 09 2021 at 13:24)</a>:</h4>
<p>I think of everything, the code I posted seems <em>most</em> clean</p>



<a name="233819908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819908">(Apr 09 2021 at 13:24)</a>:</h4>
<p>err but tests fail...</p>



<a name="233819916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233819916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233819916">(Apr 09 2021 at 13:24)</a>:</h4>
<p>That's apparently not right</p>



<a name="233820152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820152">(Apr 09 2021 at 13:26)</a>:</h4>
<p>Oh, I'm probably off by one</p>



<a name="233820228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820228">(Apr 09 2021 at 13:26)</a>:</h4>
<p>And I can't always add one...</p>



<a name="233820299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820299">(Apr 09 2021 at 13:27)</a>:</h4>
<p>I dont' understand the code you wrote</p>



<a name="233820307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820307">(Apr 09 2021 at 13:27)</a>:</h4>
<p>I must be missing something</p>



<a name="233820335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820335">(Apr 09 2021 at 13:27)</a>:</h4>
<p>(or can I? I don't think we can have elision between concatenating binders)</p>



<a name="233820352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820352">(Apr 09 2021 at 13:27)</a>:</h4>
<p>So</p>



<a name="233820367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820367">(Apr 09 2021 at 13:27)</a>:</h4>
<p>actually wait</p>



<a name="233820435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820435">(Apr 09 2021 at 13:28)</a>:</h4>
<p>ok maybe I do</p>



<a name="233820447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820447">(Apr 09 2021 at 13:28)</a>:</h4>
<p>Basically, the code finds the first <code>Binder</code> we see (<code>first_binder_depth</code>)</p>



<a name="233820479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820479">(Apr 09 2021 at 13:28)</a>:</h4>
<p>But also the last binder we see</p>



<a name="233820604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820604">(Apr 09 2021 at 13:29)</a>:</h4>
<p>We only store the actual depth for the last binder we see though</p>



<a name="233820635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820635">(Apr 09 2021 at 13:29)</a>:</h4>
<p>Since we don't actually need the "inverse depth" again</p>



<a name="233820767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820767">(Apr 09 2021 at 13:30)</a>:</h4>
<p>Overall, I'm really feeling like this code is overcomplicated</p>



<a name="233820810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820810">(Apr 09 2021 at 13:30)</a>:</h4>
<p>I think I prefer my other variant</p>



<a name="233820828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820828">(Apr 09 2021 at 13:30)</a>:</h4>
<p>where you count the binders as you walk up</p>



<a name="233820841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820841">(Apr 09 2021 at 13:30)</a>:</h4>
<p>but we mark some of them as "concatenating"</p>



<a name="233820847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820847">(Apr 09 2021 at 13:30)</a>:</h4>
<p>and you ignore those</p>



<a name="233820861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820861">(Apr 09 2021 at 13:30)</a>:</h4>
<p>is there something wrong with that? I think it covers all the things</p>



<a name="233820913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820913">(Apr 09 2021 at 13:31)</a>:</h4>
<p>alternatively, we include in a <code>Binder</code> an itneger that is either 0 or 1 :)</p>



<a name="233820917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820917">(Apr 09 2021 at 13:31)</a>:</h4>
<p>I mean, that's essentially what the <code>from_poly_trait_ref</code> code does</p>



<a name="233820955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233820955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233820955">(Apr 09 2021 at 13:31)</a>:</h4>
<p>i.e. the current code</p>



<a name="233821130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821130">(Apr 09 2021 at 13:32)</a>:</h4>
<p>no it's not</p>



<a name="233821178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821178">(Apr 09 2021 at 13:33)</a>:</h4>
<p>well</p>



<a name="233821205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821205">(Apr 09 2021 at 13:33)</a>:</h4>
<p>I guess it depends on what you mean by "essentially"</p>



<a name="233821225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821225">(Apr 09 2021 at 13:33)</a>:</h4>
<p>my version doesn't involve any booleans or flags</p>



<a name="233821241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821241">(Apr 09 2021 at 13:33)</a>:</h4>
<p>plus it works correctly (doesn't it?)</p>



<a name="233821253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821253">(Apr 09 2021 at 13:33)</a>:</h4>
<p>I forget what the bug was actually...</p>



<a name="233821344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821344">(Apr 09 2021 at 13:34)</a>:</h4>
<p>I guess you mean do the <code>in_poly_trait_ref</code> stuff when we create the <code>Binder</code></p>



<a name="233821397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821397">(Apr 09 2021 at 13:34)</a>:</h4>
<p>I think we even know when we make the binders very simply</p>



<a name="233821413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821413">(Apr 09 2021 at 13:34)</a>:</h4>
<p>if they are concatenating or not</p>



<a name="233821440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821440">(Apr 09 2021 at 13:34)</a>:</h4>
<p>we <em>must</em>, to assign the indices</p>



<a name="233821489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821489">(Apr 09 2021 at 13:35)</a>:</h4>
<p>where is that logic?</p>



<a name="233821520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821520">(Apr 09 2021 at 13:35)</a>:</h4>
<p>Sorry, I have to reread that</p>



<a name="233821540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821540">(Apr 09 2021 at 13:35)</a>:</h4>
<p>Can you restate</p>



<a name="233821640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821640">(Apr 09 2021 at 13:36)</a>:</h4>
<p>maybe let me step back a sec here</p>



<a name="233821659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821659">(Apr 09 2021 at 13:36)</a>:</h4>
<p>So, I think what your asking</p>



<a name="233821689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821689">(Apr 09 2021 at 13:36)</a>:</h4>
<p>also my coffee is ready so i'm going to relocate to my office :)</p>



<a name="233821700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821700">(Apr 09 2021 at 13:36)</a>:</h4>
<p>brb!</p>



<a name="233821720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821720">(Apr 09 2021 at 13:36)</a>:</h4>
<p>Is when we make a <code>Binder</code> scope, if we know we're going to concatenate</p>



<a name="233821756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821756">(Apr 09 2021 at 13:36)</a>:</h4>
<p>The answer is not currently, but we could</p>



<a name="233821839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233821839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233821839">(Apr 09 2021 at 13:37)</a>:</h4>
<p>Currently, we only know if we <em>could</em> concatenate, based solely on if we're a poly trait ref or not</p>



<a name="233822017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822017">(Apr 09 2021 at 13:38)</a>:</h4>
<p>btw, I think we should discuss the generator witness and lifetime erasing issue</p>



<a name="233822094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822094">(Apr 09 2021 at 13:39)</a>:</h4>
<p>Since this is just cleanup and I can fiddle on my own time (and not waste precious Niko time)</p>



<a name="233822423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822423">(Apr 09 2021 at 13:41)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233821839">said</a>:</p>
<blockquote>
<p>Currently, we only know if we <em>could</em> concatenate, based solely on if we're a poly trait ref or not</p>
</blockquote>
<p>I will say that <em>locally</em> I have basically done this, by essentially storing the <code>binder_depth</code> (aka the inverse binder depth); except it's not a bool or a <code>1/0</code></p>



<a name="233822610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822610">(Apr 09 2021 at 13:42)</a>:</h4>
<p>Because within multiple concatenating binders, we can ask at any level to resolve a lifetime. So we can't do something special for just one of them.</p>



<a name="233822674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822674">(Apr 09 2021 at 13:42)</a>:</h4>
<p>ok back</p>



<a name="233822721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822721">(Apr 09 2021 at 13:43)</a>:</h4>
<p>I guess, unless we stored the binder depth that we want in the <code>TraitRefBoundary</code> and also "find" that when we see <code>from_poly_trait_ref = true</code></p>



<a name="233822914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822914">(Apr 09 2021 at 13:44)</a>:</h4>
<p>I don't envision having any <code>from_poly_trait_ref</code> flag</p>



<a name="233822947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822947">(Apr 09 2021 at 13:44)</a>:</h4>
<p>but I should double check a few things about the code first</p>



<a name="233822962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822962">(Apr 09 2021 at 13:44)</a>:</h4>
<p>can we walk through an example?</p>



<a name="233822975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233822975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233822975">(Apr 09 2021 at 13:44)</a>:</h4>
<p>something like</p>



<a name="233823009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823009">(Apr 09 2021 at 13:45)</a>:</h4>
<p><code>for&lt;'a&gt; t: Iterator&lt;Item: for&lt;'b&gt; Trait&lt;'a, 'b&gt;&gt;</code></p>



<a name="233823209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823209">(Apr 09 2021 at 13:46)</a>:</h4>
<p>Do you want me to walk through it?</p>



<a name="233823242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823242">(Apr 09 2021 at 13:46)</a>:</h4>
<p>Or are you going to go through your thoughts</p>



<a name="233823259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823259">(Apr 09 2021 at 13:46)</a>:</h4>
<p>(you might be typing)</p>



<a name="233823328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823328">(Apr 09 2021 at 13:46)</a>:</h4>
<p>I can do the typing</p>



<a name="233823336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823336">(Apr 09 2021 at 13:46)</a>:</h4>
<p>that seems to work well for us</p>



<a name="233823348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823348">(Apr 09 2021 at 13:46)</a>:</h4>
<p>I'm trying to decide where to start</p>



<a name="233823372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823372">(Apr 09 2021 at 13:47)</a>:</h4>
<p>Sounds good</p>



<a name="233823375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823375">(Apr 09 2021 at 13:47)</a>:</h4>
<p>ok so</p>



<a name="233823405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823405">(Apr 09 2021 at 13:47)</a>:</h4>
<p>let's start with where we create the <code>Binder</code> for <code>for&lt;'a&gt;</code></p>



<a name="233823417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823417">(Apr 09 2021 at 13:47)</a>:</h4>
<p>(Also, I have a pretty narrow cutoff at 10ish)</p>



<a name="233823446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823446">(Apr 09 2021 at 13:47)</a>:</h4>
<p>I do too</p>



<a name="233823451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823451">(Apr 09 2021 at 13:47)</a>:</h4>
<p>I'll goq uick</p>



<a name="233823621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823621">(Apr 09 2021 at 13:48)</a>:</h4>
<p>I guess the starting point is visiting the item</p>



<a name="233823743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823743">(Apr 09 2021 at 13:49)</a>:</h4>
<p>maybe <a href="https://github.com/rust-lang/rust/blob/c1dc0b7bbc239290388d2365c6d0b282e299bdbc/compiler/rustc_resolve/src/late/lifetimes.rs#L1269-L1270">this code</a>?</p>



<a name="233823802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823802">(Apr 09 2021 at 13:49)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/c1dc0b7bbc239290388d2365c6d0b282e299bdbc/compiler/rustc_resolve/src/late/lifetimes.rs#L1291-L1292">we walk through the predicates</a></p>



<a name="233823807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823807">(Apr 09 2021 at 13:49)</a>:</h4>
<p>That's correct</p>



<a name="233823960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233823960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233823960">(Apr 09 2021 at 13:50)</a>:</h4>
<p>invoke <a href="https://github.com/rust-lang/rust/blob/c1dc0b7bbc239290388d2365c6d0b282e299bdbc/compiler/rustc_resolve/src/late/lifetimes.rs#L1332-L1333"><code>visit_param_bound</code></a></p>



<a name="233824021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824021">(Apr 09 2021 at 13:51)</a>:</h4>
<p>or I guess eventually get to <code>visit_poly_trait_ref</code> ?</p>



<a name="233824050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824050">(Apr 09 2021 at 13:51)</a>:</h4>
<p>Yes</p>



<a name="233824093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824093">(Apr 09 2021 at 13:51)</a>:</h4>
<p>so there's the "trait ref hack" code</p>



<a name="233824102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824102">(Apr 09 2021 at 13:51)</a>:</h4>
<p>which I'm going to ignore for now</p>



<a name="233824121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824121">(Apr 09 2021 at 13:52)</a>:</h4>
<p>:) Yes..that</p>



<a name="233824167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824167">(Apr 09 2021 at 13:52)</a>:</h4>
<p>but I think that <code>trait_ref_hack</code> is <code>Some</code> if you have <code>for&lt;'a&gt; T: ...</code></p>



<a name="233824179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824179">(Apr 09 2021 at 13:52)</a>:</h4>
<p>yes</p>



<a name="233824183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824183">(Apr 09 2021 at 13:52)</a>:</h4>
<p>and <code>None</code> if yo have <code>T: for&lt;'a&gt; ...</code></p>



<a name="233824216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824216">(Apr 09 2021 at 13:52)</a>:</h4>
<p>ok, so let's run with the latter</p>



<a name="233824245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824245">(Apr 09 2021 at 13:52)</a>:</h4>
<p>then we walk up the scopes</p>



<a name="233824289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824289">(Apr 09 2021 at 13:52)</a>:</h4>
<p>(I have to say that being able to break from a loop with a value is very cool)</p>



<a name="233824339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824339">(Apr 09 2021 at 13:53)</a>:</h4>
<p>(I love it)</p>



<a name="233824438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824438">(Apr 09 2021 at 13:53)</a>:</h4>
<p>so</p>



<a name="233824458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824458">(Apr 09 2021 at 13:53)</a>:</h4>
<p>I think we should be able to get rid of <code>trait_ref_hack</code></p>



<a name="233824503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824503">(Apr 09 2021 at 13:54)</a>:</h4>
<p>and make it all one smooth system</p>



<a name="233824564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824564">(Apr 09 2021 at 13:54)</a>:</h4>
<p>I agree</p>



<a name="233824574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824574">(Apr 09 2021 at 13:54)</a>:</h4>
<p>I think that's possible :)</p>



<a name="233824576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824576">(Apr 09 2021 at 13:54)</a>:</h4>
<p>here is what I imagine</p>



<a name="233824595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824595">(Apr 09 2021 at 13:54)</a>:</h4>
<p>we walk back up the binders</p>



<a name="233824661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824661">(Apr 09 2021 at 13:54)</a>:</h4>
<p>(let me ponder a second)</p>



<a name="233824679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824679">(Apr 09 2021 at 13:55)</a>:</h4>
<p>so we have a few scenarios</p>



<a name="233824697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824697">(Apr 09 2021 at 13:55)</a>:</h4>
<p>there's the where clause scenario I was sketching</p>



<a name="233824702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824702">(Apr 09 2021 at 13:55)</a>:</h4>
<p>also</p>



<a name="233824731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824731">(Apr 09 2021 at 13:55)</a>:</h4>
<p><code>for&lt;'a&gt; fn(dyn for&lt;'b&gt; Foo)</code></p>



<a name="233824744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824744">(Apr 09 2021 at 13:55)</a>:</h4>
<p>(assuming that we're okay with, in<code>for&lt;'a&gt; T: for&lt;'b&gt; Foo</code>, the binders on <code>T</code> <em>actually</em> being <code>['a, 'b]</code>)</p>



<a name="233824783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824783">(Apr 09 2021 at 13:55)</a>:</h4>
<p>well, we can still error in that case potentially, but I would actually be fine with that</p>



<a name="233824793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824793">(Apr 09 2021 at 13:55)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233824744">said</a>:</p>
<blockquote>
<p>(assuming that we're okay with, in<code>for&lt;'a&gt; T: for&lt;'b&gt; Foo</code>, the binders on <code>T</code> <em>actually</em> being <code>['a, 'b]</code>)</p>
</blockquote>
<p>scratch that</p>



<a name="233824868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824868">(Apr 09 2021 at 13:56)</a>:</h4>
<p>well, what I thought you meant was more like</p>



<a name="233824878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824878">(Apr 09 2021 at 13:56)</a>:</h4>
<p>assuming we're ok on accepting that</p>



<a name="233824900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824900">(Apr 09 2021 at 13:56)</a>:</h4>
<p>but we could just reject it in ast validation or something</p>



<a name="233824911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824911">(Apr 09 2021 at 13:56)</a>:</h4>
<p>if we don't want to accept it</p>



<a name="233824946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824946">(Apr 09 2021 at 13:56)</a>:</h4>
<p>Well, I think that would be okay, but we don't actually need to do that</p>



<a name="233824972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824972">(Apr 09 2021 at 13:56)</a>:</h4>
<p>i.e. that's not how the concatenation system works</p>



<a name="233824985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233824985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233824985">(Apr 09 2021 at 13:56)</a>:</h4>
<p>But continue</p>



<a name="233825028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825028">(Apr 09 2021 at 13:57)</a>:</h4>
<p>ok so the basic idea I am thinking is that we walk back in this loop--</p>



<a name="233825049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825049">(Apr 09 2021 at 13:57)</a>:</h4>
<p>if we find a <code>Binder</code>, we concatenate ourselves onto it</p>



<a name="233825054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825054">(Apr 09 2021 at 13:57)</a>:</h4>
<p>otherwise, we start a new one</p>



<a name="233825063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825063">(Apr 09 2021 at 13:57)</a>:</h4>
<p>that doesn't <em>actually</em> work</p>



<a name="233825091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825091">(Apr 09 2021 at 13:57)</a>:</h4>
<p>we either need the <code>from_poly_trait_ref</code> flag, which I don't love</p>



<a name="233825124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825124">(Apr 09 2021 at 13:57)</a>:</h4>
<p>or something like <code>TraitRefBoundary</code></p>



<a name="233825198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825198">(Apr 09 2021 at 13:58)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233824731">said</a>:</p>
<blockquote>
<p><code>for&lt;'a&gt; fn(dyn for&lt;'b&gt; Foo)</code></p>
</blockquote>
<p>for cases like these, where we don't want to concatenate</p>



<a name="233825243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825243">(Apr 09 2021 at 13:58)</a>:</h4>
<p>I don't hate <code>TraitRefBoundary</code></p>



<a name="233825263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825263">(Apr 09 2021 at 13:58)</a>:</h4>
<p>That said</p>



<a name="233825267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825267">(Apr 09 2021 at 13:58)</a>:</h4>
<p>having a "binder kind"</p>



<a name="233825270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825270">(Apr 09 2021 at 13:58)</a>:</h4>
<p>might be nicer</p>



<a name="233825295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825295">(Apr 09 2021 at 13:59)</a>:</h4>
<p>I imagine a few kinds of binders</p>



<a name="233825310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825310">(Apr 09 2021 at 13:59)</a>:</h4>
<p>I thought about that too :)</p>



<a name="233825336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825336">(Apr 09 2021 at 13:59)</a>:</h4>
<ul>
<li>root trait-ref</li>
<li>concatenating</li>
<li>other</li>
</ul>



<a name="233825359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825359">(Apr 09 2021 at 13:59)</a>:</h4>
<p>Somewhat in the general sense of "how could I clean up this code more generally"</p>



<a name="233825380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825380">(Apr 09 2021 at 13:59)</a>:</h4>
<p>if we are visiting a poly-trait-ref, and the innermost binder is a trait-ref, we push a concentating binder</p>



<a name="233825412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825412">(Apr 09 2021 at 13:59)</a>:</h4>
<p>else we push a trait-ref binder</p>



<a name="233825430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825430">(Apr 09 2021 at 14:00)</a>:</h4>
<p>There is a <em>slight</em> problem with that:</p>



<a name="233825436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825436">(Apr 09 2021 at 14:00)</a>:</h4>
<p>everywhere else we push an "other" binder</p>



<a name="233825491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825491">(Apr 09 2021 at 14:00)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233825430">said</a>:</p>
<blockquote>
<p>There is a <em>slight</em> problem with that:</p>
</blockquote>
<p>what is it</p>



<a name="233825517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825517">(Apr 09 2021 at 14:00)</a>:</h4>
<p>We don't know if we are the "root" trait ref when we actually make the binder scope</p>



<a name="233825552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825552">(Apr 09 2021 at 14:00)</a>:</h4>
<p>Because that code is general</p>



<a name="233825576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825576">(Apr 09 2021 at 14:00)</a>:</h4>
<p>we do because we just searched</p>



<a name="233825602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825602">(Apr 09 2021 at 14:00)</a>:</h4>
<p>but I have to go now, let's continue later</p>



<a name="233825604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825604">(Apr 09 2021 at 14:00)</a>:</h4>
<p>you do too :)</p>



<a name="233825633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825633">(Apr 09 2021 at 14:00)</a>:</h4>
<p>Yes :)</p>



<a name="233825644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825644">(Apr 09 2021 at 14:00)</a>:</h4>
<p>Thanks for chatting</p>



<a name="233825665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825665">(Apr 09 2021 at 14:01)</a>:</h4>
<p>Loving these meetings</p>



<a name="233825723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233825723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233825723">(Apr 09 2021 at 14:01)</a>:</h4>
<p>I'll fiddle today or this weekend and we can pick up monday</p>



<a name="233835970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233835970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233835970">(Apr 09 2021 at 15:00)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233825665">said</a>:</p>
<blockquote>
<p>Loving these meetings</p>
</blockquote>
<p>me too!</p>



<a name="233835996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233835996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233835996">(Apr 09 2021 at 15:00)</a>:</h4>
<p>best part of my day :)</p>



<a name="233839786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233839786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233839786">(Apr 09 2021 at 15:12)</a>:</h4>
<p>I think someone might have to explain all this lifetime lowering complexity to me when rust-analyzer starts getting interested in lifetimes <span aria-label="grimacing" class="emoji emoji-1f62c" role="img" title="grimacing">:grimacing:</span></p>



<a name="233856817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233856817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> marmeladema <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233856817">(Apr 09 2021 at 16:58)</a>:</h4>
<p>I read the threads in this room daily, understand almost nothing of it, but it fascinates me :D</p>



<a name="233857005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/233857005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#233857005">(Apr 09 2021 at 17:00)</a>:</h4>
<p><span class="user-mention silent" data-user-id="281572">marmeladema</span> <a href="#narrow/stream/144729-wg-traits/topic/Issue.20.2383737/near/233856817">said</a>:</p>
<blockquote>
<p>I read the threads in this room daily, understand almost nothing of it, but it fascinates me :D</p>
</blockquote>
<p>Half the time I don't even understand what I say</p>



<a name="234157635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157635">(Apr 12 2021 at 13:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  <a href="https://github.com/jackh726/rust/tree/binder-refactor-fix">https://github.com/jackh726/rust/tree/binder-refactor-fix</a></p>



<a name="234157696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157696">(Apr 12 2021 at 13:30)</a>:</h4>
<p>The important commit is <a href="https://github.com/jackh726/rust/commit/5fce82c711a804cdadf8aac6638a15f8eadadd15">https://github.com/jackh726/rust/commit/5fce82c711a804cdadf8aac6638a15f8eadadd15</a></p>



<a name="234157767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157767">(Apr 12 2021 at 13:31)</a>:</h4>
<p>Basically only what we discussed on Friday</p>



<a name="234157793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157793">(Apr 12 2021 at 13:31)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">break</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">concanetate</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                        </span><span class="k">if</span><span class="w"> </span><span class="n">passed_boundary</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="o">!</span><span class="n">from_poly_trait_ref</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                            </span><span class="n">binder_depth</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
<span class="w">                        </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                            </span><span class="n">binder_depth</span><span class="w"></span>
<span class="w">                        </span><span class="p">}</span><span class="w"></span>
<span class="w">                    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                        </span><span class="n">binder_depth</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
<span class="w">                    </span><span class="p">};</span><span class="w"></span>
</code></pre></div>



<a name="234157815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157815">(Apr 12 2021 at 13:31)</a>:</h4>
<p>that...makes sense but is quite misleading somehow :)</p>



<a name="234157837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157837">(Apr 12 2021 at 13:31)</a>:</h4>
<p>at least if you're accustomed to perl <span aria-label="camel" class="emoji emoji-1f42b" role="img" title="camel">:camel:</span></p>



<a name="234157922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157922">(Apr 12 2021 at 13:32)</a>:</h4>
<p>also s/concanetate/concatenate/:)</p>



<a name="234157943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157943">(Apr 12 2021 at 13:32)</a>:</h4>
<p>Whoops</p>



<a name="234157985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234157985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234157985">(Apr 12 2021 at 13:32)</a>:</h4>
<p>But yeah, I maybe could have written it cleaner</p>



<a name="234158012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158012">(Apr 12 2021 at 13:32)</a>:</h4>
<p>no, it's fine, I was just amused</p>



<a name="234158033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158033">(Apr 12 2021 at 13:32)</a>:</h4>
<p>it's no more confusing than <code>return if ... {</code></p>



<a name="234158140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158140">(Apr 12 2021 at 13:33)</a>:</h4>
<p>I think though, by making sure I add a <code>TraitRefBoundary</code> scope always before a trait ref somewhere, I can remove <code>from_poly_trait_ref</code></p>



<a name="234158164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158164">(Apr 12 2021 at 13:33)</a>:</h4>
<p>(Which is what I was working on in <a href="https://github.com/jackh726/rust/commit/ab4488609c497bb569b23e1f630f406435a0a0a3">https://github.com/jackh726/rust/commit/ab4488609c497bb569b23e1f630f406435a0a0a3</a>)</p>



<a name="234158353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158353">(Apr 12 2021 at 13:34)</a>:</h4>
<p>The tricky bit is getting the most minimal set of <code>TraitRefBoundary</code>s</p>



<a name="234158401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158401">(Apr 12 2021 at 13:34)</a>:</h4>
<p>In that commit as-is, we actually have two around some generics (I forget which)</p>



<a name="234158444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158444">(Apr 12 2021 at 13:35)</a>:</h4>
<p>Technically, it doesn't make a difference, but it's less clean</p>



<a name="234158667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158667">(Apr 12 2021 at 13:36)</a>:</h4>
<p>The only one I have to think a little bit more about is <code>visit_poly_trait_ref</code></p>



<a name="234158865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234158865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234158865">(Apr 12 2021 at 13:37)</a>:</h4>
<p>But I think that's easy</p>



<a name="234159566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159566">(Apr 12 2021 at 13:41)</a>:</h4>
<p>Oops Niko disappeared</p>



<a name="234159645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159645">(Apr 12 2021 at 13:41)</a>:</h4>
<p>I'm not truly gone</p>



<a name="234159652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159652">(Apr 12 2021 at 13:41)</a>:</h4>
<p>let me read the diff a bit more closely</p>



<a name="234159799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159799">(Apr 12 2021 at 13:42)</a>:</h4>
<p>I'm not sure whether I find <code>TraitRefBoudary</code> or "concatenating binders" cleaner</p>



<a name="234159821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159821">(Apr 12 2021 at 13:42)</a>:</h4>
<p>it's kind of 6 in one, half dozen in the  other, as they say</p>



<a name="234159903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159903">(Apr 12 2021 at 13:43)</a>:</h4>
<p>"concatenating binders" meaning <code>from_poly_trait_ref</code>?</p>



<a name="234159945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159945">(Apr 12 2021 at 13:43)</a>:</h4>
<p>not necessarily</p>



<a name="234159981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159981">(Apr 12 2021 at 13:43)</a>:</h4>
<p>I guess that could be renamed <code>ConcatenationBoundary</code></p>



<a name="234159991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234159991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234159991">(Apr 12 2021 at 13:43)</a>:</h4>
<p>I think it is true only for nested "from poly trait refs"</p>



<a name="234160023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160023">(Apr 12 2021 at 13:43)</a>:</h4>
<p>which means that you kind of have to track the trait ref boundary anyway</p>



<a name="234160296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160296">(Apr 12 2021 at 13:45)</a>:</h4>
<p>I haven't tried to just drop this into the <code>trait_ref_hack</code> bit</p>



<a name="234160350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160350">(Apr 12 2021 at 13:45)</a>:</h4>
<p>But I think it might be super simple</p>



<a name="234160606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160606">(Apr 12 2021 at 13:46)</a>:</h4>
<p>At this point, we should maybe just finish on this; I think really digging into the chalk closure issue is going to take some time</p>



<a name="234160618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160618">(Apr 12 2021 at 13:46)</a>:</h4>
<p>I'm reading over that logic</p>



<a name="234160634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160634">(Apr 12 2021 at 13:46)</a>:</h4>
<p>so that first commit <em>feels</em> to me a bit more complex</p>



<a name="234160923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160923">(Apr 12 2021 at 13:48)</a>:</h4>
<p>So, the biggest benefit of the first commit in isolation is the logic for calculating binder depth is in one place</p>



<a name="234160951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234160951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234160951">(Apr 12 2021 at 13:48)</a>:</h4>
<p>(Nearly)</p>



<a name="234161043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161043">(Apr 12 2021 at 13:48)</a>:</h4>
<p>I was going to say it feels a bit more complex than it has to be</p>



<a name="234161075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161075">(Apr 12 2021 at 13:49)</a>:</h4>
<p>How so</p>



<a name="234161292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161292">(Apr 12 2021 at 13:50)</a>:</h4>
<p>so here is a possible design</p>



<a name="234161304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161304">(Apr 12 2021 at 13:50)</a>:</h4>
<p>tell me what you think</p>



<a name="234161723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161723">(Apr 12 2021 at 13:52)</a>:</h4>
<p>so if we had "binder kind"</p>



<a name="234161753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161753">(Apr 12 2021 at 13:52)</a>:</h4>
<p>I think it could have the following values:</p>



<a name="234161816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161816">(Apr 12 2021 at 13:52)</a>:</h4>
<ul>
<li>Fn</li>
<li>PolyTraitRef</li>
<li>Concatenating</li>
</ul>



<a name="234161880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161880">(Apr 12 2021 at 13:53)</a>:</h4>
<p>to compute the depth at some point, you walk back; you increment the late-bound depth for each binder you pass <em>unless</em> it its kind is <code>Concatenating</code></p>



<a name="234161973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234161973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234161973">(Apr 12 2021 at 13:53)</a>:</h4>
<p>to decide the binder kind, if this is a poly-trait-ref, you look back at the kind of the innermost binder (if any)...</p>



<a name="234162088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162088">(Apr 12 2021 at 13:54)</a>:</h4>
<ul>
<li>if it is <code>Some(PolyTraitRef)</code> or <code>Some(Concatenating)</code>, then your kind is <code>Concatenating</code></li>
<li>else your kind is <code>PolyTraitRef</code></li>
</ul>



<a name="234162120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162120">(Apr 12 2021 at 13:54)</a>:</h4>
<p>for all other places we push binders, we use the kind <code>Fn</code> (or maybe call that <code>Other</code>, whatever)</p>



<a name="234162140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162140">(Apr 12 2021 at 13:54)</a>:</h4>
<p>I think this works in all cases?</p>



<a name="234162173"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162173" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162173">(Apr 12 2021 at 13:54)</a>:</h4>
<p>I'm not convinced that pre-computing the binder depth is that useful</p>



<a name="234162208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162208">(Apr 12 2021 at 13:55)</a>:</h4>
<p>since we still have to walk backwards, it seems?</p>



<a name="234162279"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162279" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162279">(Apr 12 2021 at 13:55)</a>:</h4>
<p>That seems like that would work</p>



<a name="234162394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162394">(Apr 12 2021 at 13:55)</a>:</h4>
<p>But that's essentially what <code>from_poly_trait_ref</code> does</p>



<a name="234162459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162459">(Apr 12 2021 at 13:56)</a>:</h4>
<p>No, it's different</p>



<a name="234162467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162467">(Apr 12 2021 at 13:56)</a>:</h4>
<p>Except</p>



<a name="234162474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162474">(Apr 12 2021 at 13:56)</a>:</h4>
<p>In one particular</p>



<a name="234162483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162483">(Apr 12 2021 at 13:56)</a>:</h4>
<p>Not quite</p>



<a name="234162517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162517">(Apr 12 2021 at 13:56)</a>:</h4>
<p>In particular it distinguishes <em>nested</em> poly-trait-ref binders from the outermost one</p>



<a name="234162533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162533">(Apr 12 2021 at 13:56)</a>:</h4>
<p>Yeah</p>



<a name="234162544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162544">(Apr 12 2021 at 13:56)</a>:</h4>
<p>it is easy to figure out if something is nested when you push the binder</p>



<a name="234162558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162558">(Apr 12 2021 at 13:56)</a>:</h4>
<p>it's annoying to figure it out at other times</p>



<a name="234162597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162597">(Apr 12 2021 at 13:56)</a>:</h4>
<p>because it can make you walk further back than you otherwise would have to</p>



<a name="234162633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162633">(Apr 12 2021 at 13:57)</a>:</h4>
<p>and in particular, you need to know if something is nested to know what to do at that point where you are walking back in terms of incrementing the late-depth</p>



<a name="234162653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162653">(Apr 12 2021 at 13:57)</a>:</h4>
<p>I feel like this is what you were trying to say Friday and I think I misunderstood</p>



<a name="234162851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162851">(Apr 12 2021 at 13:58)</a>:</h4>
<p>it is what I was trying to say Friday</p>



<a name="234162866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162866">(Apr 12 2021 at 13:58)</a>:</h4>
<p>I'm not sure how well I expressed it</p>



<a name="234162875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162875">(Apr 12 2021 at 13:58)</a>:</h4>
<p>or even understood it at the time</p>



<a name="234162941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234162941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234162941">(Apr 12 2021 at 13:58)</a>:</h4>
<p>Okay let me work on this then</p>



<a name="234163006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234163006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234163006">(Apr 12 2021 at 13:59)</a>:</h4>
<p>I have a meeting, so hard cutoff today :)</p>



<a name="234163070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234163070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234163070">(Apr 12 2021 at 13:59)</a>:</h4>
<p>Thanks for chatting :)</p>



<a name="234163095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234163095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234163095">(Apr 12 2021 at 13:59)</a>:</h4>
<p>ok! I have some stuff to do too</p>



<a name="234163175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234163175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234163175">(Apr 12 2021 at 14:00)</a>:</h4>
<p>talking this out has been good, it seems clearer to me now</p>



<a name="234163278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234163278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234163278">(Apr 12 2021 at 14:00)</a>:</h4>
<p>Yeah, these meetings have been super helpful</p>



<a name="234887603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234887603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234887603">(Apr 16 2021 at 16:55)</a>:</h4>
<p>I could potentially use some help on this. I have no clue where the <code>Box&lt;dyn for&lt;'a&gt; Future&lt;Output = ()&gt;&gt;</code> <code>LocalDecl</code> is ending up in the generator body</p>



<a name="234887739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234887739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234887739">(Apr 16 2021 at 16:56)</a>:</h4>
<p>I added a <code>dbg</code> statement seemingly in every place that something gets added to <code>local_decls</code>, but I must be missing one because I don't see it :/</p>



<a name="234892367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/234892367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#234892367">(Apr 16 2021 at 17:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> any thoughts or help here would be greatly appreciated. Honestly just stuck.</p>



<a name="235179437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235179437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235179437">(Apr 19 2021 at 13:24)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> sorry, I'll look now!</p>



<a name="235179456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235179456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235179456">(Apr 19 2021 at 13:24)</a>:</h4>
<p>are you around by any chance?</p>



<a name="235179974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235179974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235179974">(Apr 19 2021 at 13:28)</a>:</h4>
<p>how do I reproduce the problem again?</p>



<a name="235181528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235181528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235181528">(Apr 19 2021 at 13:39)</a>:</h4>
<p>Um the issue 83737 test</p>



<a name="235181572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235181572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235181572">(Apr 19 2021 at 13:39)</a>:</h4>
<p>Add a <code>for&lt;'a&gt;</code> around <code>Future</code></p>



<a name="235181800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235181800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235181800">(Apr 19 2021 at 13:41)</a>:</h4>
<p>Sorry I have today off and slept in :)</p>



<a name="235185221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235185221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235185221">(Apr 19 2021 at 14:03)</a>:</h4>
<p>why can't I find this test</p>



<a name="235185259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235185259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235185259">(Apr 19 2021 at 14:03)</a>:</h4>
<p>is it not on master?</p>



<a name="235185422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235185422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235185422">(Apr 19 2021 at 14:04)</a>:</h4>
<p>oh</p>



<a name="235185466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235185466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235185466">(Apr 19 2021 at 14:04)</a>:</h4>
<p>problem solved</p>



<a name="235213862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235213862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235213862">(Apr 19 2021 at 16:57)</a>:</h4>
<p>Were you able to make any progress on this?</p>



<a name="235216313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Issue%20%2383737/near/235216313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Issue.20.2383737.html#235216313">(Apr 19 2021 at 17:13)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span>  I wasn't but I hope to poke at it later</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>